diff --git a/.gitignore b/.gitignore index e0f8501490a85015a57c7280aeba872fcb2c0692..5dc4372a5956ba5ce2b5ef6fc4359616c7cb5cd5 100644 --- a/.gitignore +++ b/.gitignore @@ -162,3 +162,9 @@ cython_debug/ # TeraFlowSDN-generated files tfs_runtime_env_vars.sh +delete_local_deployment.sh +local_docker_deployment.sh +local_k8s_deployment.sh + +# Other logs +**/logs/*.log.* diff --git a/deploy.sh b/deploy.sh index f80974573dfa83ef2c2139d6855a46a16e149746..b0bd374422820be5b3cb88dbf096a1fd037bf14e 100755 --- a/deploy.sh +++ b/deploy.sh @@ -58,18 +58,6 @@ kubectl delete namespace $TFS_K8S_NAMESPACE kubectl create namespace $TFS_K8S_NAMESPACE printf "\n" -if [[ "$TFS_COMPONENTS" == *"monitoring"* ]]; then - echo "Creating secrets for InfluxDB..." - #TODO: make sure to change this when having a production deployment - kubectl create secret generic influxdb-secrets --namespace=$TFS_K8S_NAMESPACE \ - --from-literal=INFLUXDB_DB="monitoring" --from-literal=INFLUXDB_ADMIN_USER="teraflow" \ - --from-literal=INFLUXDB_ADMIN_PASSWORD="teraflow" --from-literal=INFLUXDB_HTTP_AUTH_ENABLED="True" - kubectl create secret generic monitoring-secrets --namespace=$TFS_K8S_NAMESPACE \ - --from-literal=INFLUXDB_DATABASE="monitoring" --from-literal=INFLUXDB_USER="teraflow" \ - --from-literal=INFLUXDB_PASSWORD="teraflow" --from-literal=INFLUXDB_HOSTNAME="localhost" - printf "\n" -fi - echo "Deploying components and collecting environment variables..." ENV_VARS_SCRIPT=tfs_runtime_env_vars.sh echo "# Environment variables for TeraFlowSDN deployment" > $ENV_VARS_SCRIPT @@ -158,6 +146,8 @@ for COMPONENT in $TFS_COMPONENTS; do fi fi + # TODO: harmonize names of the monitoring component + echo " Deploying '$COMPONENT' component to Kubernetes..." DEPLOY_LOG="$TMP_LOGS_FOLDER/deploy_${COMPONENT}.log" kubectl --namespace $TFS_K8S_NAMESPACE apply -f "$MANIFEST" > "$DEPLOY_LOG" @@ -200,7 +190,17 @@ for EXTRA_MANIFEST in $TFS_EXTRA_MANIFESTS; do printf "\n" done -# By now, leave this control here. Some component dependencies are not well handled +# By now, leave these controls here. Some component dependencies are not well handled. + +if [[ "$TFS_COMPONENTS" == *"monitoring"* ]]; then + echo "Waiting for 'MonitoringDB' component..." + # Kubernetes does not implement --for='condition=available' for statefulsets. + # By now, we assume a single replica of monitoringdb. To be updated in future releases. + kubectl wait --namespace $TFS_K8S_NAMESPACE \ + --for=jsonpath='{.status.readyReplicas}'=1 --timeout=300s statefulset/monitoringdb + printf "\n" +fi + for COMPONENT in $TFS_COMPONENTS; do echo "Waiting for '$COMPONENT' component..." kubectl wait --namespace $TFS_K8S_NAMESPACE \ @@ -212,12 +212,12 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]] && [[ "$TFS_COMPONENTS" == *"monitoring" echo "Configuring WebUI DataStores and Dashboards..." sleep 3 - INFLUXDB_HOST="monitoringservice" - INFLUXDB_PORT=$(kubectl --namespace $TFS_K8S_NAMESPACE get service/monitoringservice -o jsonpath='{.spec.ports[?(@.name=="influxdb")].port}') - INFLUXDB_URL="http://${INFLUXDB_HOST}:${INFLUXDB_PORT}" - INFLUXDB_USER=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_USER}' | base64 --decode) - INFLUXDB_PASSWORD=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_PASSWORD}' | base64 --decode) - INFLUXDB_DATABASE=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_DB}' | base64 --decode) + # INFLUXDB_HOST="monitoringservice" + # INFLUXDB_PORT=$(kubectl --namespace $TFS_K8S_NAMESPACE get service/monitoringservice -o jsonpath='{.spec.ports[?(@.name=="influxdb")].port}') + # INFLUXDB_URL="http://${INFLUXDB_HOST}:${INFLUXDB_PORT}" + # INFLUXDB_USER=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_USER}' | base64 --decode) + # INFLUXDB_PASSWORD=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_PASSWORD}' | base64 --decode) + # INFLUXDB_DATABASE=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_DB}' | base64 --decode) # Exposed through the ingress controller "tfs-ingress" GRAFANA_HOSTNAME="127.0.0.1" @@ -234,6 +234,8 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]] && [[ "$TFS_COMPONENTS" == *"monitoring" # Updated Grafana API URL GRAFANA_URL_UPDATED="http://${GRAFANA_USERNAME}:${TFS_GRAFANA_PASSWORD}@${GRAFANA_HOSTNAME}:${GRAFANA_PORT}${GRAFANA_BASEURL}" + echo "export GRAFANA_URL_UPDATED=${GRAFANA_URL_UPDATED}" >> $ENV_VARS_SCRIPT + echo "Connecting to grafana at URL: ${GRAFANA_URL_DEFAULT}..." # Configure Grafana Admin Password @@ -245,26 +247,41 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]] && [[ "$TFS_COMPONENTS" == *"monitoring" }' ${GRAFANA_URL_DEFAULT}/api/user/password echo - # Create InfluxDB DataSource # Ref: https://grafana.com/docs/grafana/latest/http_api/data_source/ - curl -X POST -H "Content-Type: application/json" -d '{ - "type" : "influxdb", - "name" : "InfluxDB", - "url" : "'"$INFLUXDB_URL"'", + # TODO: replace user, password and database by variables to be saved + echo "Creating a datasource..." + curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ "access" : "proxy", + "type" : "postgres", + "name" : "monitoringdb", + "url" : "monitoringservice:8812", + "database" : "monitoring", + "user" : "admin", "basicAuth": false, - "user" : "'"$INFLUXDB_USER"'", - "password" : "'"$INFLUXDB_PASSWORD"'", "isDefault": true, - "database" : "'"$INFLUXDB_DATABASE"'" + "jsonData" : { + "sslmode" : "disable", + "postgresVersion" : 1100, + "maxOpenConns" : 0, + "maxIdleConns" : 2, + "connMaxLifetime" : 14400, + "tlsAuth" : false, + "tlsAuthWithCACert" : false, + "timescaledb" : false, + "tlsConfigurationMethod": "file-path", + "tlsSkipVerify" : true + }, + "secureJsonData": { + "password": "quest" + } }' ${GRAFANA_URL_UPDATED}/api/datasources echo # Create Monitoring Dashboard # Ref: https://grafana.com/docs/grafana/latest/http_api/dashboard/ curl -X POST -H "Content-Type: application/json" \ - -d '@src/webui/grafana_dashboard.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db + -d '@src/webui/grafana_dashboard_psql.json' \ + ${GRAFANA_URL_UPDATED}/api/dashboards/db echo DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tf-l3-monit" diff --git a/deploy_component.sh b/deploy_component.sh new file mode 100755 index 0000000000000000000000000000000000000000..a4cf6184c83ef026562abe8e084430bba3ead9c8 --- /dev/null +++ b/deploy_component.sh @@ -0,0 +1,186 @@ +#!/bin/bash +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + + +######################################################################################################################## +# Read deployment settings +######################################################################################################################## + +# If not already set, set the URL of your local Docker registry where the images will be uploaded to. +# Leave it blank if you do not want to use any Docker registry. +export TFS_REGISTRY_IMAGE=${TFS_REGISTRY_IMAGE:-""} +#export TFS_REGISTRY_IMAGE="http://my-container-registry.local/" + +TFS_COMPONENTS=$1 + +# If not already set, set the tag you want to use for your images. +export TFS_IMAGE_TAG=${TFS_IMAGE_TAG:-"dev"} + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +# If not already set, set additional manifest files to be applied after the deployment +export TFS_EXTRA_MANIFESTS=${TFS_EXTRA_MANIFESTS:-""} + +# If not already set, set the neew Grafana admin password +export TFS_GRAFANA_PASSWORD=${TFS_GRAFANA_PASSWORD:-"admin123+"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +# Constants +GITLAB_REPO_URL="registry.gitlab.com/teraflow-h2020/controller" +TMP_FOLDER="./tmp" + +# Create a tmp folder for files modified during the deployment +TMP_MANIFESTS_FOLDER="$TMP_FOLDER/manifests" +TMP_LOGS_FOLDER="$TMP_FOLDER/logs" + +echo "Deploying component and collecting environment variables..." +ENV_VARS_SCRIPT=tfs_runtime_env_vars.sh + +for COMPONENT in $TFS_COMPONENTS; do + echo "Processing '$COMPONENT' component..." + IMAGE_NAME="$COMPONENT:$TFS_IMAGE_TAG" + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGE/$IMAGE_NAME" | sed 's,//,/,g' | sed 's,http:/,,g') + + echo " Building Docker image..." + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log" + + if [ "$COMPONENT" == "automation" ] || [ "$COMPONENT" == "policy" ]; then + docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" + elif [ "$COMPONENT" == "pathcomp" ]; then + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-frontend.log" + docker build -t "$COMPONENT-frontend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/frontend/Dockerfile . >> "$BUILD_LOG" + + BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}-backend.log" + docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG" -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" + # next command is redundant, but helpful to keep cache updated between rebuilds + docker build -t "$COMPONENT-backend:$TFS_IMAGE_TAG-builder" --target builder -f ./src/"$COMPONENT"/backend/Dockerfile . >> "$BUILD_LOG" + else + docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG" + fi + + if [ -n "$TFS_REGISTRY_IMAGE" ]; then + echo " Pushing Docker image to '$TFS_REGISTRY_IMAGE'..." + + if [ "$COMPONENT" == "pathcomp" ]; then + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-frontend.log" + docker tag "$COMPONENT-frontend:$TFS_IMAGE_TAG" "$IMAGE_URL-frontend" > "$TAG_LOG" + + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}-backend.log" + docker tag "$COMPONENT-backend:$TFS_IMAGE_TAG" "$IMAGE_URL-backend" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-frontend.log" + docker push "$IMAGE_URL-frontend" > "$PUSH_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}-backend.log" + docker push "$IMAGE_URL-backend" > "$PUSH_LOG" + else + TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}.log" + docker tag "$IMAGE_NAME" "$IMAGE_URL" > "$TAG_LOG" + + PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log" + docker push "$IMAGE_URL" > "$PUSH_LOG" + fi + fi + + echo " Adapting '$COMPONENT' manifest file..." + MANIFEST="$TMP_MANIFESTS_FOLDER/${COMPONENT}service.yaml" + cp ./manifests/"${COMPONENT}"service.yaml "$MANIFEST" + + if [ -n "$TFS_REGISTRY_IMAGE" ]; then + # Registry is set + if [ "$COMPONENT" == "pathcomp" ]; then + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-frontend:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-frontend:${VERSION}#image: $IMAGE_URL-frontend#g" "$MANIFEST" + + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-backend:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-backend:${VERSION}#image: $IMAGE_URL-backend#g" "$MANIFEST" + + sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Always#g" "$MANIFEST" + else + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" + sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Always#g" "$MANIFEST" + fi + else + # Registry is not set + if [ "$COMPONENT" == "pathcomp" ]; then + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-frontend:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-frontend:${VERSION}#image: $IMAGE_NAME-frontend#g" "$MANIFEST" + + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}-backend:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-backend:${VERSION}#image: $IMAGE_NAME-backend#g" "$MANIFEST" + + sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Never#g" "$MANIFEST" + else + VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f3) + sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_NAME#g" "$MANIFEST" + sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Never#g" "$MANIFEST" + fi + fi + + # TODO: harmonize names of the monitoring component + + echo " Deploying '$COMPONENT' component to Kubernetes..." + DEPLOY_LOG="$TMP_LOGS_FOLDER/deploy_${COMPONENT}.log" + kubectl --namespace $TFS_K8S_NAMESPACE delete -f "$MANIFEST" > "$DEPLOY_LOG" + kubectl --namespace $TFS_K8S_NAMESPACE apply -f "$MANIFEST" > "$DEPLOY_LOG" + COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/") + kubectl --namespace $TFS_K8S_NAMESPACE scale deployment --replicas=0 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG" + kubectl --namespace $TFS_K8S_NAMESPACE scale deployment --replicas=1 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG" + + echo " Collecting env-vars for '$COMPONENT' component..." + + SERVICE_DATA=$(kubectl get service ${COMPONENT}service --namespace $TFS_K8S_NAMESPACE -o json) + if [ -z "${SERVICE_DATA}" ]; then continue; fi + + # Env vars for service's host address + SERVICE_HOST=$(echo ${SERVICE_DATA} | jq -r '.spec.clusterIP') + if [ -z "${SERVICE_HOST}" ]; then continue; fi + # TODO: remove previous value from file + ENVVAR_HOST=$(echo "${COMPONENT}service_SERVICE_HOST" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_HOST}=${SERVICE_HOST}" >> $ENV_VARS_SCRIPT + + # Env vars for service's 'grpc' port (if any) + SERVICE_PORT_GRPC=$(echo ${SERVICE_DATA} | jq -r '.spec.ports[] | select(.name=="grpc") | .port') + if [ -n "${SERVICE_PORT_GRPC}" ]; then + ENVVAR_PORT_GRPC=$(echo "${COMPONENT}service_SERVICE_PORT_GRPC" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_PORT_GRPC}=${SERVICE_PORT_GRPC}" >> $ENV_VARS_SCRIPT + fi + + # Env vars for service's 'http' port (if any) + SERVICE_PORT_HTTP=$(echo ${SERVICE_DATA} | jq -r '.spec.ports[] | select(.name=="http") | .port') + if [ -n "${SERVICE_PORT_HTTP}" ]; then + ENVVAR_PORT_HTTP=$(echo "${COMPONENT}service_SERVICE_PORT_HTTP" | tr '[:lower:]' '[:upper:]') + echo "export ${ENVVAR_PORT_HTTP}=${SERVICE_PORT_HTTP}" >> $ENV_VARS_SCRIPT + fi + + printf "\n" +done + +# By now, leave this control here. Some component dependencies are not well handled +for COMPONENT in $TFS_COMPONENTS; do + echo "Waiting for '$COMPONENT' component..." + kubectl wait --namespace $TFS_K8S_NAMESPACE \ + --for='condition=available' --timeout=300s deployment/${COMPONENT}service + printf "\n" +done + +./show_deploy.sh + +echo "Done!" diff --git a/ecoc22 b/ecoc22 new file mode 120000 index 0000000000000000000000000000000000000000..3c61895e5ac62d0b38ce058ba5ff042442542320 --- /dev/null +++ b/ecoc22 @@ -0,0 +1 @@ +src/tests/ecoc22/ \ No newline at end of file diff --git a/hackfest/commands.txt b/hackfest/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..c34c6acc112e3d5dee47752967b60bab32556c94 --- /dev/null +++ b/hackfest/commands.txt @@ -0,0 +1,266 @@ +This is a quick guide for having fast access to the commands. + +################################################################################ +# Prepare environment +################################################################################ + +# (done) Create PyEnv virtual environment +cd ~/tfs-ctrl +pyenv virtualenv 3.9.13 tfs +pyenv local 3.9.13/envs/tfs +./install_requirements.sh + +# (done) Install Python dependencies +pip install pyang +pip install git+https://github.com/robshakir/pyangbind.git +pip install netconf + +# (done) Install PlantUML +# (done) Install dependencies to run PlantUML +sudo apt-get install -y graphviz openjdk-11-jre + +# (done) Download plantuml.7997.jar from http://sourceforge.net/projects/plantuml/files/plantuml.7997.jar/download +cp ~/Downloads/plantuml.7997.jar ~/tfs-ctrl/hackfest/yang/plantuml.jar + +# (done) Install WireShark +# When asked "allow non-root users to capture?" answer "yes" +sudo apt-get install -y wireshark +# Add current user to wireshark group to allow capturing as non-root (requires log-out & log-in, or reboot) +sudo usermod -a -G wireshark $USER + + + +################################################################################ +# YANG +################################################################################ + +## GUIDED + +# Convert Topology YANG to Text-based tree +pyang -f tree topology.yang +pyang -f tree topology.yang -o topology.tree + +# Report a sample message following Topology YANG data model +pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations topology.yang +pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations topology.yang -o topology-sample.xml + +# Convert Topology YANG to UML +pyang -f uml topology.yang -o topology.uml +java -jar plantuml.jar topology.uml + +# Convert Topology YANG to Python bindings +export PYBINDPLUGIN=`/usr/bin/env python -c \ +'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'` +echo $PYBINDPLUGIN +pyang -f pybind topology.yang --plugindir $PYBINDPLUGIN -o binding_topology.py + +# Test creation of JSON-/XML-encoded Topology messages +python topology.py + +## EXERCISE + +# Convert Connection YANG to Text-based tree +pyang -f tree connection.yang + +# Report a sample message following Connection YANG data model +pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations connection.yang + +# Convert Connection YANG to UML +pyang -f uml connection.yang -o connection.uml +java -jar plantuml.jar connection.uml + +# Convert Connection YANG to Python bindings +export PYBINDPLUGIN=`/usr/bin/env python -c \ + 'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'` +pyang -f pybind connection.yang --plugindir $PYBINDPLUGIN -o binding_connection.py + +# Test creation of JSON-/XML-encoded Connection messages +python connection.py + + + +################################################################################ +# NETCONF +################################################################################ + +## GUIDED + +Run server: +cd ~/tfs-ctrl/hackfest/netconf +python3 server_topology.py + +In another window, run client: +cd ~/tfs-ctrl/hackfest/netconf +python3 client_topology.py + +## EXERCISE + +Run server: +cd ~/tfs-ctrl/hackfest/netconf/connection +python3 server_topology_connection.py + +In another window, run client: +cd ~/tfs-ctrl/hackfest/netconf/connection +python3 client_connection.py + + + +################################################################################ +# TAPI +################################################################################ + +## GUIDED + +# (done) Install dependencies +cd ~/tfs-ctrl/hackfest/tapi/server +pip install -r requirements.txt + +# (done) Build & Implement methods for the TAPI v2.1.3 server: +cd ~/tfs-ctrl/hackfest/tapi +wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.35/swagger-codegen-cli-3.0.35.jar +wget -O tapi-connectivity.yaml https://github.com/OpenNetworkingFoundation/TAPI/raw/v2.1.3/OAS/tapi-connectivity%402020-06-16.yaml +java -jar swagger-codegen-cli-3.0.35.jar generate --input-spec tapi-connectivity.yaml \ + --lang python-flask --output server --disable-examples --config codegen-config.json +pip install connexion==2.14.1 +cd ~/tfs-ctrl/hackfest/tapi/server +# Rename methods in "tapi_server/controllers/tapi_path_computation_controller.py" as follows: +# operations_tapi_path_computationcompute_p2_p_path_post => operations_tapi_path_computationcompute_p_2_p_path_post +# operations_tapi_path_computationdelete_p2_p_path_post => operations_tapi_path_computationdelete_p_2_p_path_post +# operations_tapi_path_computationoptimize_p2_ppath_post => operations_tapi_path_computationoptimize_p_2_ppath_post +# Implement database based on Reference Implementation [Ref-3] in tapi/server/Acknowledgements.txt + +# Run the TAPI server: +cd ~/tfs-ctrl/hackfest/tapi/server +python3 -m tapi_server 8080 database/mini-ols-context.json + +# Run TAPI client using cURL (In a new window): +$ cd ~/tfs-ctrl/hackfest/tapi/client + +# Interrogate Context and SIPs: +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/service-interface-point=node-4-port-16-output/ + +# Interrogate Topology, Nodes and Links: +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/topology=ols-topo/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/topology=ols-topo/node=node-4/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/topology=ols-topo/node=node-4/owned-node-edge-point=node-4-port-13/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/topology=ols-topo/node=node-4/owned-node-edge-point=node-4-port-13/tapi-connectivity:cep-list/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-topology:topology-context/topology=ols-topo/link=link-4:2-2:4/ + +# Create ConnectivityServices and Connections: +curl -X POST -H "Content-Type: application/json" \ + http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service/ \ + -d @/home/tfs/tfs-ctrl/hackfest/tapi/client/cs1.json + +# Interrogate ConnectivityServices and Connections: +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-connectivity:connectivity-context/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service=cs1/ +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-connectivity:connectivity-context/connection=cs1/ + +# Delete ConnectivityServices and Connections: +curl -X DELETE -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service=cs1/ + + +## EXERCISE +# Exercise: retrieve and draw the topology +# solution in folder tapi_app + +cd ~/tfs-ctrl/hackfest/tapi/tapi_app +python3 tapi_app.py + + + +################################################################################ +# Deploy TeraFlowSDN +################################################################################ + +# Check status of Kubernetes +microk8s.status --wait-ready + +# Check all resources in Kubernetes +microk8s.kubectl get all --all-namespaces + +# Deploy TeraFlowSDN +cd ~/tfs-ctrl +source my_deploy.sh +./deploy.sh + +# Show status of your deployment +(if new terminal) cd ~/tfs-ctrl && source my_deploy.sh +./show_deploy.sh + +# Show logs of a specific component +(if new terminal) cd ~/tfs-ctrl && source my_deploy.sh +scripts/show_logs_device.sh + + + +################################################################################ +# Programmable L3 routers +################################################################################ + +# (done) Build a Netconf server supporting basic OpenConfig data model + +# Start the Netconf/OpenConfig server +cd ~/tfs-ctrl/hackfest/netconf-oc +python3 server_openconfig.py 8300 + + + +################################################################################ +# Service requests +################################################################################ + +## L3VPN service from JSON descriptors + +# (in a new terminal) Start OLS TAPI server: +cd ~/tfs-ctrl/hackfest/tapi/server +python3 -m tapi_server 8080 database/mini-ols-context.json + +# (in a new terminal) Start the Netconf/OpenConfig server for R1 +cd ~/tfs-ctrl/hackfest/netconf-oc +python3 server_openconfig.py 8301 + +# (in a new terminal) Start the Netconf/OpenConfig server for R2 +cd ~/tfs-ctrl/hackfest/netconf-oc +python3 server_openconfig.py 8302 + +# (in a new terminal) Start the Netconf/OpenConfig server for R3 +cd ~/tfs-ctrl/hackfest/netconf-oc +python3 server_openconfig.py 8303 + +# (in a new terminal) Start the Netconf/OpenConfig server for R4 +cd ~/tfs-ctrl/hackfest/netconf-oc +python3 server_openconfig.py 8304 + + + +############ +# Mock OSM +############ + +$ cd ~/tfs-ctrl/hackfest/ +$ python -m mock_osm +Welcome to the MockOSM shell. +Type help or ? to list commands. + +(mock-osm) create +Service b8c99e2c-39d8-424d-9833-554634269555 created +# Service should be created in TFS. Check "Slice" and "Service" pages on WebUI. +# Check configuration rules in "Devices" + +(mock-osm) status +response.status_code=200 +Status of Service b8c99e2c-39d8-424d-9833-554634269555 is {'sdn_status': 'ACTIVE'} + +(mock-osm) delete +Service b8c99e2c-39d8-424d-9833-554634269555 deleted +# Service should be removed from TFS. Check "Slice" and "Service" pages on WebUI. +# Check configuration rules in "Devices" + +(mock-osm) exit +Bye! + + + diff --git a/hackfest/gnmi/commands.txt b/hackfest/gnmi/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..6fae7f9a8fc8b9b69d364b1d279aca80759c90ef --- /dev/null +++ b/hackfest/gnmi/commands.txt @@ -0,0 +1,17 @@ +== GNMI +$ cd /usr/share/gocode/src/ +$ export GOPATH=/usr/share/gocode/ +$ go run github.com/openconfig/ygot/generator/generator.go -generate_fakeroot -output_file github.com/google/gnxi/gnmi/modeldata/gostruct/generated.go -package_name gostruct github.com/rvilalta/OFC_SC472/yang/topology.yang +$ cd /usr/share/gocode/src/github.com/google/gnxi/gnmi_target +$ go run gnmi_target.go -bind_address :10161 -config ~/tfs-ctrl/hackfest/gnmi/topology.json --notls -alsologtostderr + +RUN CLIENT (in another window) +$ export GOPATH=/usr/share/gocode/ +$ cd /usr/share/gocode/src/github.com/google/gnxi/gnmi_get +$ go run gnmi_get.go -notls -xpath "/topology/" -target_addr localhost:10161 -alsologtostderr +$ go run gnmi_get.go -notls -xpath "/topology/node[node-id=A]" -target_addr localhost:10161 -alsologtostderr + +USE PYTHON CLIENT +$ cd /usr/share/gocode/src/github.com/google/gnxi/gnmi_cli_py +$ python py_gnmicli.py -n -m get -t localhost -p 10161 -x /topology -u foo -pass bar + diff --git a/hackfest/gnmi/topology.json b/hackfest/gnmi/topology.json new file mode 100644 index 0000000000000000000000000000000000000000..9b64536a7992fbbde22f95c9cd9275354a9f7d81 --- /dev/null +++ b/hackfest/gnmi/topology.json @@ -0,0 +1,8 @@ +{ + "topology" : { + "node" : [ + { "node-id" : "A" , "port" : [ { "port-id" : "portA1" } ] }, + { "node-id" : "B" , "port" : [ { "port-id" : "portB1" } ] } + ] + } +} diff --git a/hackfest/grpc/commands.txt b/hackfest/grpc/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..e0148b180c03841098781563976467d980abc464 --- /dev/null +++ b/hackfest/grpc/commands.txt @@ -0,0 +1,36 @@ +== GRPC +$ cd ~/tfs-ctrl/hackfest/grpc + +COMPILE connection.proto: +$ python -m grpc_tools.protoc -I=. --python_out=connection/ connection.proto + +RUN CREATE AND LIST CONNECTION +$ cd ~/tfs-ctrl/hackfest/grpc/connection +$ python3 create.py connection.txt +$ python3 list.py connection.txt + +COMPILE connectionService.proto +$ python -m grpc_tools.protoc -I=. --python_out=connectionService/ --grpc_python_out=connectionService/ connectionService.proto + +RUN SERVER +$ cd ~/tfs-ctrl/hackfest/grpc/connectionService +$ python3 connectionService_server.py + +RUN CLIENT (in another window) +$ cd ~/tfs-ctrl/hackfest/grpc/connectionService +$ python3 connectionService_client.py + +### EXERCISE +COMPILE connectionServiceWithNotif.proto +$ cd ~/tfs-ctrl/hackfest/grpc/ +$ python -m grpc_tools.protoc -I=. --python_out=connectionServiceWithNotif/ --grpc_python_out=connectionServiceWithNotif/ connectionServiceWithNotif.proto + +RUN SERVER +$ cd ~/tfs-ctrl/hackfest/grpc/connectionServiceWithNotif +$ python3 connectionServiceWithNotif_server.py + +RUN CLIENT (in another window) +$ cd ~/tfs-ctrl/hackfest/grpc/connectionServiceWithNotif +$ python3 connectionServiceWithNotif_client.py + + diff --git a/hackfest/grpc/connection.proto b/hackfest/grpc/connection.proto new file mode 100644 index 0000000000000000000000000000000000000000..42661cd5bcc0218d5daf4ffad31b22d6234fcc33 --- /dev/null +++ b/hackfest/grpc/connection.proto @@ -0,0 +1,24 @@ +//Example of connection +syntax = "proto3"; +package connection; + +message Connection { + string connectionId = 1; + string sourceNode = 2; + string targetNode = 3; + string sourcePort = 4; + string targetPort = 5; + uint32 bandwidth = 6; + + enum LayerProtocolName { + ETH = 0; + OPTICAL = 1; + } + + LayerProtocolName layerProtocolName = 7; + +} + +message ConnectionList { + repeated Connection connection = 1; +} diff --git a/hackfest/grpc/connection/connection_pb2.py b/hackfest/grpc/connection/connection_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..e66b665b22303fbf582de9ec378591fae4e09659 --- /dev/null +++ b/hackfest/grpc/connection/connection_pb2.py @@ -0,0 +1,176 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: connection.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='connection.proto', + package='connection', + syntax='proto3', + serialized_options=None, + serialized_pb=_b('\n\x10\x63onnection.proto\x12\nconnection\"\xf5\x01\n\nConnection\x12\x14\n\x0c\x63onnectionId\x18\x01 \x01(\t\x12\x12\n\nsourceNode\x18\x02 \x01(\t\x12\x12\n\ntargetNode\x18\x03 \x01(\t\x12\x12\n\nsourcePort\x18\x04 \x01(\t\x12\x12\n\ntargetPort\x18\x05 \x01(\t\x12\x11\n\tbandwidth\x18\x06 \x01(\r\x12\x43\n\x11layerProtocolName\x18\x07 \x01(\x0e\x32(.connection.Connection.LayerProtocolName\")\n\x11LayerProtocolName\x12\x07\n\x03\x45TH\x10\x00\x12\x0b\n\x07OPTICAL\x10\x01\"<\n\x0e\x43onnectionList\x12*\n\nconnection\x18\x01 \x03(\x0b\x32\x16.connection.Connectionb\x06proto3') +) + + + +_CONNECTION_LAYERPROTOCOLNAME = _descriptor.EnumDescriptor( + name='LayerProtocolName', + full_name='connection.Connection.LayerProtocolName', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ETH', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPTICAL', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=237, + serialized_end=278, +) +_sym_db.RegisterEnumDescriptor(_CONNECTION_LAYERPROTOCOLNAME) + + +_CONNECTION = _descriptor.Descriptor( + name='Connection', + full_name='connection.Connection', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connectionId', full_name='connection.Connection.connectionId', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourceNode', full_name='connection.Connection.sourceNode', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetNode', full_name='connection.Connection.targetNode', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourcePort', full_name='connection.Connection.sourcePort', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetPort', full_name='connection.Connection.targetPort', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bandwidth', full_name='connection.Connection.bandwidth', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layerProtocolName', full_name='connection.Connection.layerProtocolName', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONNECTION_LAYERPROTOCOLNAME, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=33, + serialized_end=278, +) + + +_CONNECTIONLIST = _descriptor.Descriptor( + name='ConnectionList', + full_name='connection.ConnectionList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connection', full_name='connection.ConnectionList.connection', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=280, + serialized_end=340, +) + +_CONNECTION.fields_by_name['layerProtocolName'].enum_type = _CONNECTION_LAYERPROTOCOLNAME +_CONNECTION_LAYERPROTOCOLNAME.containing_type = _CONNECTION +_CONNECTIONLIST.fields_by_name['connection'].message_type = _CONNECTION +DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION +DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), dict( + DESCRIPTOR = _CONNECTION, + __module__ = 'connection_pb2' + # @@protoc_insertion_point(class_scope:connection.Connection) + )) +_sym_db.RegisterMessage(Connection) + +ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), dict( + DESCRIPTOR = _CONNECTIONLIST, + __module__ = 'connection_pb2' + # @@protoc_insertion_point(class_scope:connection.ConnectionList) + )) +_sym_db.RegisterMessage(ConnectionList) + + +# @@protoc_insertion_point(module_scope) diff --git a/hackfest/grpc/connection/create.py b/hackfest/grpc/connection/create.py new file mode 100755 index 0000000000000000000000000000000000000000..df5df77d631f25e0ce5368d537f4cb0f99297669 --- /dev/null +++ b/hackfest/grpc/connection/create.py @@ -0,0 +1,48 @@ +#! /usr/bin/env python3 +import connection_pb2 +import sys + +try: + raw_input # Python 2 +except NameError: + raw_input = input # Python 3 + + +# This function fills in a Connection message based on user input. +def PromptForConnection(connection): + connection.connectionId = raw_input("Enter connectionID: ") + connection.sourceNode = raw_input("Enter sourceNode: ") + connection.targetNode = raw_input("Enter targetNode: ") + connection.sourcePort = raw_input("Enter sourcePort: ") + connection.targetPort = raw_input("Enter targetPort: ") + connection.bandwidth = int( raw_input("Enter bandwidth: ") ) + + type = raw_input("Is this a eth or optical connection? ") + if type == "eth": + connection.layerProtocolName = connection_pb2.Connection.ETH + elif type == "optical": + connection.layerProtocolName = connection_pb2.Connection.OPTICAL + else: + print("Unknown layerProtocolName type; leaving as default value.") + + +if __name__ == '__main__': + if len(sys.argv) != 2: + print("Usage:", sys.argv[0], "CONNECTION_FILE") + sys.exit(-1) + + connectionList = connection_pb2.ConnectionList() + + # Read the existing address book. + try: + with open(sys.argv[1], "rb") as f: + connectionList.ParseFromString(f.read()) + except IOError: + print(sys.argv[1] + ": File not found. Creating a new file.") + + # Add an address. + PromptForConnection(connectionList.connection.add()) + + # Write the new address book back to disk. + with open(sys.argv[1], "wb") as f: + f.write(connectionList.SerializeToString()) diff --git a/hackfest/grpc/connection/list.py b/hackfest/grpc/connection/list.py new file mode 100755 index 0000000000000000000000000000000000000000..47b92cc4aa2e64cb121eddbcf4a0d10f87800fb2 --- /dev/null +++ b/hackfest/grpc/connection/list.py @@ -0,0 +1,33 @@ +#! /usr/bin/env python3 +from __future__ import print_function +import connection_pb2 +import sys + + +# Iterates though all connections in the ConnectionList and prints info about them. +def ListConnections(connectionList): + for connection in connectionList.connection: + print("connectionID:", connection.connectionId) + print(" sourceNode:", connection.sourceNode) + print(" targetNode:", connection.targetNode) + print(" sourcePort:", connection.sourcePort) + print(" targetPort:", connection.targetPort) + print(" bandwidth:", connection.bandwidth) + if connection.layerProtocolName == connection_pb2.Connection.ETH: + print(" layerProtocolName:ETH") + elif connection.layerProtocolName == connection_pb2.Connection.OPTICAL: + print(" layerProtocolName:OPTICAL") + + +if __name__ == '__main__': + if len(sys.argv) != 2: + print("Usage:", sys.argv[0], "CONNECTION_FILE") + sys.exit(-1) + + connectionList = connection_pb2.ConnectionList() + + # Read the existing address book. + with open(sys.argv[1], "rb") as f: + connectionList.ParseFromString(f.read()) + + ListConnections(connectionList) diff --git a/hackfest/grpc/connectionService.proto b/hackfest/grpc/connectionService.proto new file mode 100644 index 0000000000000000000000000000000000000000..aa3bcb4ef68ef8d3185d1b7da21ac0867b9cf59d --- /dev/null +++ b/hackfest/grpc/connectionService.proto @@ -0,0 +1,32 @@ +//Example of connection +syntax = "proto3"; +package connection; + +import "google/protobuf/empty.proto"; + +service ConnectionService { + rpc CreateConnection (Connection) returns (google.protobuf.Empty) {} + rpc ListConnection (google.protobuf.Empty) returns (ConnectionList) {} +} + + +message Connection { + string connectionId = 1; + string sourceNode = 2; + string targetNode = 3; + string sourcePort = 4; + string targetPort = 5; + uint32 bandwidth = 6; + + enum LayerProtocolName { + ETH = 0; + OPTICAL = 1; + } + + LayerProtocolName layerProtocolName = 7; + +} + +message ConnectionList { + repeated Connection connection = 1; +} diff --git a/hackfest/grpc/connectionService/connectionService_client.py b/hackfest/grpc/connectionService/connectionService_client.py new file mode 100644 index 0000000000000000000000000000000000000000..c0f45f7a90efc85bb718a25c2353595c4a12a042 --- /dev/null +++ b/hackfest/grpc/connectionService/connectionService_client.py @@ -0,0 +1,34 @@ +from __future__ import print_function + +import grpc + +import connectionService_pb2 +import connectionService_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +try: + raw_input # Python 2 +except NameError: + raw_input = input # Python 3 + +def createConnection(): + with grpc.insecure_channel('localhost:50051') as channel: + connection=connectionService_pb2.Connection() + connection.connectionId = raw_input("Enter connectionID: ") + connection.sourceNode = raw_input("Enter sourceNode: ") + connection.targetNode = raw_input("Enter targetNode: ") + connection.sourcePort = raw_input("Enter sourcePort: ") + connection.targetPort = raw_input("Enter targetPort: ") + connection.bandwidth = int( raw_input("Enter bandwidth: ") ) + stub = connectionService_pb2_grpc.ConnectionServiceStub(channel) + response = stub.CreateConnection(connection) + print("ConnectionService client received: " + str(response) ) + +def listConnection(): + with grpc.insecure_channel('localhost:50051') as channel: + stub = connectionService_pb2_grpc.ConnectionServiceStub(channel) + response = stub.ListConnection(google_dot_protobuf_dot_empty__pb2.Empty()) + print("ConnectionService client received: " + str(response) ) + +if __name__ == '__main__': + createConnection() + listConnection() \ No newline at end of file diff --git a/hackfest/grpc/connectionService/connectionService_pb2.py b/hackfest/grpc/connectionService/connectionService_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..9f1951fa92a017baf4f44470e833aae8d74e0f3b --- /dev/null +++ b/hackfest/grpc/connectionService/connectionService_pb2.py @@ -0,0 +1,211 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: connectionService.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='connectionService.proto', + package='connection', + syntax='proto3', + serialized_options=None, + serialized_pb=_b('\n\x17\x63onnectionService.proto\x12\nconnection\x1a\x1bgoogle/protobuf/empty.proto\"\xf5\x01\n\nConnection\x12\x14\n\x0c\x63onnectionId\x18\x01 \x01(\t\x12\x12\n\nsourceNode\x18\x02 \x01(\t\x12\x12\n\ntargetNode\x18\x03 \x01(\t\x12\x12\n\nsourcePort\x18\x04 \x01(\t\x12\x12\n\ntargetPort\x18\x05 \x01(\t\x12\x11\n\tbandwidth\x18\x06 \x01(\r\x12\x43\n\x11layerProtocolName\x18\x07 \x01(\x0e\x32(.connection.Connection.LayerProtocolName\")\n\x11LayerProtocolName\x12\x07\n\x03\x45TH\x10\x00\x12\x0b\n\x07OPTICAL\x10\x01\"<\n\x0e\x43onnectionList\x12*\n\nconnection\x18\x01 \x03(\x0b\x32\x16.connection.Connection2\xa1\x01\n\x11\x43onnectionService\x12\x44\n\x10\x43reateConnection\x12\x16.connection.Connection\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0eListConnection\x12\x16.google.protobuf.Empty\x1a\x1a.connection.ConnectionList\"\x00\x62\x06proto3') + , + dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,]) + + + +_CONNECTION_LAYERPROTOCOLNAME = _descriptor.EnumDescriptor( + name='LayerProtocolName', + full_name='connection.Connection.LayerProtocolName', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ETH', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPTICAL', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=273, + serialized_end=314, +) +_sym_db.RegisterEnumDescriptor(_CONNECTION_LAYERPROTOCOLNAME) + + +_CONNECTION = _descriptor.Descriptor( + name='Connection', + full_name='connection.Connection', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connectionId', full_name='connection.Connection.connectionId', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourceNode', full_name='connection.Connection.sourceNode', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetNode', full_name='connection.Connection.targetNode', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourcePort', full_name='connection.Connection.sourcePort', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetPort', full_name='connection.Connection.targetPort', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bandwidth', full_name='connection.Connection.bandwidth', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layerProtocolName', full_name='connection.Connection.layerProtocolName', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONNECTION_LAYERPROTOCOLNAME, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=69, + serialized_end=314, +) + + +_CONNECTIONLIST = _descriptor.Descriptor( + name='ConnectionList', + full_name='connection.ConnectionList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connection', full_name='connection.ConnectionList.connection', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=316, + serialized_end=376, +) + +_CONNECTION.fields_by_name['layerProtocolName'].enum_type = _CONNECTION_LAYERPROTOCOLNAME +_CONNECTION_LAYERPROTOCOLNAME.containing_type = _CONNECTION +_CONNECTIONLIST.fields_by_name['connection'].message_type = _CONNECTION +DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION +DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), dict( + DESCRIPTOR = _CONNECTION, + __module__ = 'connectionService_pb2' + # @@protoc_insertion_point(class_scope:connection.Connection) + )) +_sym_db.RegisterMessage(Connection) + +ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), dict( + DESCRIPTOR = _CONNECTIONLIST, + __module__ = 'connectionService_pb2' + # @@protoc_insertion_point(class_scope:connection.ConnectionList) + )) +_sym_db.RegisterMessage(ConnectionList) + + + +_CONNECTIONSERVICE = _descriptor.ServiceDescriptor( + name='ConnectionService', + full_name='connection.ConnectionService', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=379, + serialized_end=540, + methods=[ + _descriptor.MethodDescriptor( + name='CreateConnection', + full_name='connection.ConnectionService.CreateConnection', + index=0, + containing_service=None, + input_type=_CONNECTION, + output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='ListConnection', + full_name='connection.ConnectionService.ListConnection', + index=1, + containing_service=None, + input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + output_type=_CONNECTIONLIST, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_CONNECTIONSERVICE) + +DESCRIPTOR.services_by_name['ConnectionService'] = _CONNECTIONSERVICE + +# @@protoc_insertion_point(module_scope) diff --git a/hackfest/grpc/connectionService/connectionService_pb2_grpc.py b/hackfest/grpc/connectionService/connectionService_pb2_grpc.py new file mode 100644 index 0000000000000000000000000000000000000000..94ffffbf7fd3c90b541f36bd1aac6f23e1b5913b --- /dev/null +++ b/hackfest/grpc/connectionService/connectionService_pb2_grpc.py @@ -0,0 +1,64 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +import connectionService_pb2 as connectionService__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +class ConnectionServiceStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateConnection = channel.unary_unary( + '/connection.ConnectionService/CreateConnection', + request_serializer=connectionService__pb2.Connection.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + ) + self.ListConnection = channel.unary_unary( + '/connection.ConnectionService/ListConnection', + request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + response_deserializer=connectionService__pb2.ConnectionList.FromString, + ) + + +class ConnectionServiceServicer(object): + # missing associated documentation comment in .proto file + pass + + def CreateConnection(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListConnection(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConnectionServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateConnection': grpc.unary_unary_rpc_method_handler( + servicer.CreateConnection, + request_deserializer=connectionService__pb2.Connection.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + 'ListConnection': grpc.unary_unary_rpc_method_handler( + servicer.ListConnection, + request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + response_serializer=connectionService__pb2.ConnectionList.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'connection.ConnectionService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/hackfest/grpc/connectionService/connectionService_server.py b/hackfest/grpc/connectionService/connectionService_server.py new file mode 100644 index 0000000000000000000000000000000000000000..6fbd195cdeaf22ddeab86ca0a4860f85a194448f --- /dev/null +++ b/hackfest/grpc/connectionService/connectionService_server.py @@ -0,0 +1,39 @@ +from concurrent import futures +import time +import logging +import grpc + +import connectionService_pb2 +import connectionService_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 + +class connectionService(connectionService_pb2_grpc.ConnectionServiceServicer): + def __init__(self): + self.connectionList = connectionService_pb2.ConnectionList() + + def CreateConnection(self, request, context): + logging.debug("Received Connection " + request.connectionId) + self.connectionList.connection.extend([request]) + return google_dot_protobuf_dot_empty__pb2.Empty() + + def ListConnection(self, request, context): + logging.debug("List Connections") + return self.connectionList + +def serve(): + server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) + connectionService_pb2_grpc.add_ConnectionServiceServicer_to_server(connectionService(), server) + server.add_insecure_port('[::]:50051') + logging.debug("Starting server") + server.start() + try: + while True: + time.sleep(_ONE_DAY_IN_SECONDS) + except KeyboardInterrupt: + server.stop(0) + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + serve() diff --git a/hackfest/grpc/connectionServiceWithNotif.proto b/hackfest/grpc/connectionServiceWithNotif.proto new file mode 100644 index 0000000000000000000000000000000000000000..8430479c525894e0e13140ad07d5691eb8601aca --- /dev/null +++ b/hackfest/grpc/connectionServiceWithNotif.proto @@ -0,0 +1,36 @@ +//Example of connection +syntax = "proto3"; +package connection; + +import "google/protobuf/empty.proto"; + +service ConnectionServiceWithNotif { + rpc CreateConnection (Connection) returns (google.protobuf.Empty) {} + rpc ListConnection (google.protobuf.Empty) returns (ConnectionList) {} + rpc GetBer(Connection) returns (stream Ber) {} +} + +message Ber { + double value = 1; +} + +message Connection { + string connectionId = 1; + string sourceNode = 2; + string targetNode = 3; + string sourcePort = 4; + string targetPort = 5; + uint32 bandwidth = 6; + + enum LayerProtocolName { + ETH = 0; + OPTICAL = 1; + } + + LayerProtocolName layerProtocolName = 7; + +} + +message ConnectionList { + repeated Connection connection = 1; +} diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py new file mode 100644 index 0000000000000000000000000000000000000000..e40e0a5fa53e75a3a1ad940c9516d75ada1f180f --- /dev/null +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py @@ -0,0 +1,39 @@ +from __future__ import print_function + +import grpc + +import connectionServiceWithNotif_pb2 +import connectionServiceWithNotif_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +try: + raw_input # Python 2 +except NameError: + raw_input = input # Python 3 + +def createConnection(stub): + connection=connectionServiceWithNotif_pb2.Connection() + connection.connectionId = raw_input("Enter connectionID: ") + connection.sourceNode = raw_input("Enter sourceNode: ") + connection.targetNode = raw_input("Enter targetNode: ") + connection.sourcePort = raw_input("Enter sourcePort: ") + connection.targetPort = raw_input("Enter targetPort: ") + connection.bandwidth = int( raw_input("Enter bandwidth: ") ) + + response = stub.CreateConnection(connection) + print("ConnectionService client received: " + str(response) ) + +def listConnection(stub): + response = stub.ListConnection(google_dot_protobuf_dot_empty__pb2.Empty()) + print("ConnectionService client received: " + str(response) ) + +def getBer(stub): + responses = stub.GetBer(connectionServiceWithNotif_pb2.Connection(connectionId="conn1")) + for response in responses: + print("Received Ber %s" % (response.value) ) + +if __name__ == '__main__': + with grpc.insecure_channel('localhost:50051') as channel: + stub = connectionServiceWithNotif_pb2_grpc.ConnectionServiceWithNotifStub(channel) + #createConnection(stub) + listConnection(stub) + getBer(stub) \ No newline at end of file diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..403dd0ce409700875e8fc80b011564d055c5c4cb --- /dev/null +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2.py @@ -0,0 +1,259 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: connectionServiceWithNotif.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='connectionServiceWithNotif.proto', + package='connection', + syntax='proto3', + serialized_options=None, + serialized_pb=_b('\n connectionServiceWithNotif.proto\x12\nconnection\x1a\x1bgoogle/protobuf/empty.proto\"\x14\n\x03\x42\x65r\x12\r\n\x05value\x18\x01 \x01(\x01\"\xf5\x01\n\nConnection\x12\x14\n\x0c\x63onnectionId\x18\x01 \x01(\t\x12\x12\n\nsourceNode\x18\x02 \x01(\t\x12\x12\n\ntargetNode\x18\x03 \x01(\t\x12\x12\n\nsourcePort\x18\x04 \x01(\t\x12\x12\n\ntargetPort\x18\x05 \x01(\t\x12\x11\n\tbandwidth\x18\x06 \x01(\r\x12\x43\n\x11layerProtocolName\x18\x07 \x01(\x0e\x32(.connection.Connection.LayerProtocolName\")\n\x11LayerProtocolName\x12\x07\n\x03\x45TH\x10\x00\x12\x0b\n\x07OPTICAL\x10\x01\"<\n\x0e\x43onnectionList\x12*\n\nconnection\x18\x01 \x03(\x0b\x32\x16.connection.Connection2\xe1\x01\n\x1a\x43onnectionServiceWithNotif\x12\x44\n\x10\x43reateConnection\x12\x16.connection.Connection\x1a\x16.google.protobuf.Empty\"\x00\x12\x46\n\x0eListConnection\x12\x16.google.protobuf.Empty\x1a\x1a.connection.ConnectionList\"\x00\x12\x35\n\x06GetBer\x12\x16.connection.Connection\x1a\x0f.connection.Ber\"\x00\x30\x01\x62\x06proto3') + , + dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,]) + + + +_CONNECTION_LAYERPROTOCOLNAME = _descriptor.EnumDescriptor( + name='LayerProtocolName', + full_name='connection.Connection.LayerProtocolName', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ETH', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OPTICAL', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=304, + serialized_end=345, +) +_sym_db.RegisterEnumDescriptor(_CONNECTION_LAYERPROTOCOLNAME) + + +_BER = _descriptor.Descriptor( + name='Ber', + full_name='connection.Ber', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='connection.Ber.value', index=0, + number=1, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=77, + serialized_end=97, +) + + +_CONNECTION = _descriptor.Descriptor( + name='Connection', + full_name='connection.Connection', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connectionId', full_name='connection.Connection.connectionId', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourceNode', full_name='connection.Connection.sourceNode', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetNode', full_name='connection.Connection.targetNode', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sourcePort', full_name='connection.Connection.sourcePort', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetPort', full_name='connection.Connection.targetPort', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bandwidth', full_name='connection.Connection.bandwidth', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layerProtocolName', full_name='connection.Connection.layerProtocolName', index=6, + number=7, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONNECTION_LAYERPROTOCOLNAME, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=345, +) + + +_CONNECTIONLIST = _descriptor.Descriptor( + name='ConnectionList', + full_name='connection.ConnectionList', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='connection', full_name='connection.ConnectionList.connection', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=347, + serialized_end=407, +) + +_CONNECTION.fields_by_name['layerProtocolName'].enum_type = _CONNECTION_LAYERPROTOCOLNAME +_CONNECTION_LAYERPROTOCOLNAME.containing_type = _CONNECTION +_CONNECTIONLIST.fields_by_name['connection'].message_type = _CONNECTION +DESCRIPTOR.message_types_by_name['Ber'] = _BER +DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION +DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Ber = _reflection.GeneratedProtocolMessageType('Ber', (_message.Message,), dict( + DESCRIPTOR = _BER, + __module__ = 'connectionServiceWithNotif_pb2' + # @@protoc_insertion_point(class_scope:connection.Ber) + )) +_sym_db.RegisterMessage(Ber) + +Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), dict( + DESCRIPTOR = _CONNECTION, + __module__ = 'connectionServiceWithNotif_pb2' + # @@protoc_insertion_point(class_scope:connection.Connection) + )) +_sym_db.RegisterMessage(Connection) + +ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), dict( + DESCRIPTOR = _CONNECTIONLIST, + __module__ = 'connectionServiceWithNotif_pb2' + # @@protoc_insertion_point(class_scope:connection.ConnectionList) + )) +_sym_db.RegisterMessage(ConnectionList) + + + +_CONNECTIONSERVICEWITHNOTIF = _descriptor.ServiceDescriptor( + name='ConnectionServiceWithNotif', + full_name='connection.ConnectionServiceWithNotif', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=410, + serialized_end=635, + methods=[ + _descriptor.MethodDescriptor( + name='CreateConnection', + full_name='connection.ConnectionServiceWithNotif.CreateConnection', + index=0, + containing_service=None, + input_type=_CONNECTION, + output_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='ListConnection', + full_name='connection.ConnectionServiceWithNotif.ListConnection', + index=1, + containing_service=None, + input_type=google_dot_protobuf_dot_empty__pb2._EMPTY, + output_type=_CONNECTIONLIST, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetBer', + full_name='connection.ConnectionServiceWithNotif.GetBer', + index=2, + containing_service=None, + input_type=_CONNECTION, + output_type=_BER, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_CONNECTIONSERVICEWITHNOTIF) + +DESCRIPTOR.services_by_name['ConnectionServiceWithNotif'] = _CONNECTIONSERVICEWITHNOTIF + +# @@protoc_insertion_point(module_scope) diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2_grpc.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2_grpc.py new file mode 100644 index 0000000000000000000000000000000000000000..9a88a22b4bd9055f1d2e905abaa2496faadb5533 --- /dev/null +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_pb2_grpc.py @@ -0,0 +1,81 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + +import connectionServiceWithNotif_pb2 as connectionServiceWithNotif__pb2 +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + + +class ConnectionServiceWithNotifStub(object): + # missing associated documentation comment in .proto file + pass + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.CreateConnection = channel.unary_unary( + '/connection.ConnectionServiceWithNotif/CreateConnection', + request_serializer=connectionServiceWithNotif__pb2.Connection.SerializeToString, + response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + ) + self.ListConnection = channel.unary_unary( + '/connection.ConnectionServiceWithNotif/ListConnection', + request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + response_deserializer=connectionServiceWithNotif__pb2.ConnectionList.FromString, + ) + self.GetBer = channel.unary_stream( + '/connection.ConnectionServiceWithNotif/GetBer', + request_serializer=connectionServiceWithNotif__pb2.Connection.SerializeToString, + response_deserializer=connectionServiceWithNotif__pb2.Ber.FromString, + ) + + +class ConnectionServiceWithNotifServicer(object): + # missing associated documentation comment in .proto file + pass + + def CreateConnection(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListConnection(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetBer(self, request, context): + # missing associated documentation comment in .proto file + pass + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ConnectionServiceWithNotifServicer_to_server(servicer, server): + rpc_method_handlers = { + 'CreateConnection': grpc.unary_unary_rpc_method_handler( + servicer.CreateConnection, + request_deserializer=connectionServiceWithNotif__pb2.Connection.FromString, + response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString, + ), + 'ListConnection': grpc.unary_unary_rpc_method_handler( + servicer.ListConnection, + request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString, + response_serializer=connectionServiceWithNotif__pb2.ConnectionList.SerializeToString, + ), + 'GetBer': grpc.unary_stream_rpc_method_handler( + servicer.GetBer, + request_deserializer=connectionServiceWithNotif__pb2.Connection.FromString, + response_serializer=connectionServiceWithNotif__pb2.Ber.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'connection.ConnectionServiceWithNotif', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py new file mode 100644 index 0000000000000000000000000000000000000000..a9970056dbd6308e1191f4e57b7be7d20a94c43e --- /dev/null +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py @@ -0,0 +1,46 @@ +from concurrent import futures +import time +import logging +import grpc + +import connectionServiceWithNotif_pb2 +import connectionServiceWithNotif_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 + +class connectionServiceWithNotif(connectionServiceWithNotif_pb2_grpc.ConnectionServiceWithNotifServicer): + def __init__(self): + self.connectionList = connectionServiceWithNotif_pb2.ConnectionList() + + def CreateConnection(self, request, context): + logging.debug("Received Connection " + request.connectionId) + self.connectionList.connection.extend([request]) + return google_dot_protobuf_dot_empty__pb2.Empty() + + def ListConnection(self, request, context): + logging.debug("List Connections") + return self.connectionList + def GetBer (self, request, context): + logging.debug("Get Ber") + while True: + time.sleep(5) + ber=connectionServiceWithNotif_pb2.Ber(value=10) + yield ber + + +def serve(): + server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) + connectionServiceWithNotif_pb2_grpc.add_ConnectionServiceWithNotifServicer_to_server(connectionServiceWithNotif(), server) + server.add_insecure_port('[::]:50051') + logging.debug("Starting server") + server.start() + try: + while True: + time.sleep(_ONE_DAY_IN_SECONDS) + except KeyboardInterrupt: + server.stop(0) + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + serve() diff --git a/hackfest/grpc/topologyService.proto b/hackfest/grpc/topologyService.proto new file mode 100644 index 0000000000000000000000000000000000000000..cf9601a4bf4c07a5f0bf73f9feb9f1e89d50ba63 --- /dev/null +++ b/hackfest/grpc/topologyService.proto @@ -0,0 +1,38 @@ +//Example of topology +syntax = "proto3"; +package topology; + +import "google/protobuf/empty.proto"; + +service TopologyService { + rpc GetTopology (google.protobuf.Empty) returns (Topology) {} +} + + +message Link { + string link_id = 1; + string source_node = 2; + string target_node = 3; + string source_port = 4; + string target_port = 5; +} + +message Node { + string node_id = 1; + repeated Port port = 2; +} + +message Port { + string port_id = 1; + enum LayerProtocolName { + ETH = 0; + OPTICAL = 1; + } + LayerProtocolName layerProtocolName = 2; +} + +message Topology { + repeated Node node = 1; + repeated Link link = 2; +} + diff --git a/hackfest/grpc/topologyService/topologyService_client.py b/hackfest/grpc/topologyService/topologyService_client.py new file mode 100644 index 0000000000000000000000000000000000000000..24ce803b0348110acda02237058db4101d605acc --- /dev/null +++ b/hackfest/grpc/topologyService/topologyService_client.py @@ -0,0 +1,21 @@ +from __future__ import print_function + +import grpc + +import topologyService_pb2 +import topologyService_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +try: + raw_input # Python 2 +except NameError: + raw_input = input # Python 3 + + +def getTopology(): + with grpc.insecure_channel('localhost:50051') as channel: + stub = topologyService_pb2_grpc.TopologyServiceStub(channel) + response = stub.GetTopology(google_dot_protobuf_dot_empty__pb2.Empty()) + print("TopologyService client received: " + str(response) ) + +if __name__ == '__main__': + getTopology() diff --git a/hackfest/grpc/topologyService/topologyService_server.py b/hackfest/grpc/topologyService/topologyService_server.py new file mode 100644 index 0000000000000000000000000000000000000000..bb72e224239297226b2cf03bca2a72f4b0086ba2 --- /dev/null +++ b/hackfest/grpc/topologyService/topologyService_server.py @@ -0,0 +1,48 @@ +from concurrent import futures +import time +import logging +import grpc + +import topologyService_pb2 +import topologyService_pb2_grpc +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 + +_ONE_DAY_IN_SECONDS = 60 * 60 * 24 + +class topologyService(topologyService_pb2_grpc.TopologyServiceServicer): + def __init__(self): + self.topology = topologyService_pb2.Topology() + node1=self.topology.node.add() + node1.node_id = "node1" + portA = node1.port.add() + portA.port_id = "node1portA" + node2=self.topology.node.add() + node2.node_id = "node2" + portB=node2.port.add() + portB.port_id = "node2portA" + link=self.topology.link.add() + link.link_id = "link1" + link.source_node = "node1" + link.target_node = "node2" + link.source_port = "node1portA" + link.target_port = "node2portA" + + def GetTopology(self, request, context): + logging.debug("Get Topology") + return self.topology + +def serve(): + server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) + topologyService_pb2_grpc.add_TopologyServiceServicer_to_server(topologyService(), server) + server.add_insecure_port('[::]:50051') + logging.debug("Starting server") + server.start() + try: + while True: + time.sleep(_ONE_DAY_IN_SECONDS) + except KeyboardInterrupt: + server.stop(0) + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) + serve() diff --git a/hackfest/kafka/commands.txt b/hackfest/kafka/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..f29d6020b5fa044b1d60020b30075c763161f31f --- /dev/null +++ b/hackfest/kafka/commands.txt @@ -0,0 +1,27 @@ +== KAFKA +$ cd ~/tfs-ctrl/hackfest/kafka + +(INSTALL) +$ pip3 install kafka-python +$ wget https://ftp.cixug.es/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz +$ tar -xzf kafka_2.13-2.8.0.tgz +(RUN) +$ cd kafka_2.13-2.8.0 +$ bin/zookeeper-server-start.sh config/zookeeper.properties +(In new window) +$ cd ~/tfs-ctrl/hackfest/kafka/kafka_2.13-2.8.0 +$ bin/kafka-server-start.sh config/server.properties + +CREATE TOPIC +(In new window) +$ cd ~/tfs-ctrl/hackfest/kafka/kafka_2.13-2.8.0 +$ bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 + +(In new window) +$ cd ~/tfs-ctrl/hackfest/kafka +$ python3 sub.py + +(In new window) +$ cd ~/tfs-ctrl/hackfest/kafka +$ python3 pub.py + diff --git a/hackfest/kafka/kafka_2.13-2.8.0.tgz b/hackfest/kafka/kafka_2.13-2.8.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..29538c5ea8fefb4d432e4b7e53d60316d0371629 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0.tgz differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/LICENSE b/hackfest/kafka/kafka_2.13-2.8.0/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..4d8e2c76a41c83859ea80f4e25be9892e98485c9 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/LICENSE @@ -0,0 +1,320 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + +------------------------------------------------------------------------------- +This project bundles some components that are also licensed under the Apache +License Version 2.0: + +audience-annotations-0.5.0 +commons-cli-1.4 +commons-lang3-3.8.1 +jackson-annotations-2.10.5 +jackson-core-2.10.5 +jackson-databind-2.10.5.1 +jackson-dataformat-csv-2.10.5 +jackson-datatype-jdk8-2.10.5 +jackson-jaxrs-base-2.10.5 +jackson-jaxrs-json-provider-2.10.5 +jackson-module-jaxb-annotations-2.10.5 +jackson-module-paranamer-2.10.5 +jackson-module-scala_2.13-2.10.5 +jakarta.validation-api-2.0.2 +javassist-3.27.0-GA +jetty-client-9.4.38.v20210224 +jetty-continuation-9.4.38.v20210224 +jetty-http-9.4.38.v20210224 +jetty-io-9.4.38.v20210224 +jetty-security-9.4.38.v20210224 +jetty-server-9.4.38.v20210224 +jetty-servlet-9.4.38.v20210224 +jetty-servlets-9.4.38.v20210224 +jetty-util-9.4.38.v20210224 +jetty-util-ajax-9.4.38.v20210224 +jersey-common-2.31 +jersey-server-2.31 +log4j-1.2.17 +lz4-java-1.7.1 +maven-artifact-3.6.3 +metrics-core-2.2.0 +netty-buffer-4.1.59.Final +netty-codec-4.1.59.Final +netty-common-4.1.59.Final +netty-handler-4.1.59.Final +netty-resolver-4.1.59.Final +netty-transport-4.1.59.Final +netty-transport-native-epoll-4.1.59.Final +netty-transport-native-epoll-4.1.59.Final +netty-transport-native-unix-common-4.1.59.Final +plexus-utils-3.2.1 +rocksdbjni-5.18.4 +scala-collection-compat_2.13-2.3.0 +scala-library-2.13.5 +scala-logging_2.13-3.9.2 +scala-reflect-2.13.5 +scala-java8-compat_2.13-0.9.1 +snappy-java-1.1.8.1 +zookeeper-3.5.9 +zookeeper-jute-3.5.9 + +=============================================================================== +This product bundles various third-party components under other open source +licenses. This section summarizes those components and their licenses. +See licenses/ for text of these licenses. + +--------------------------------------- +Eclipse Distribution License - v 1.0 +see: licenses/eclipse-distribution-license-1.0 + +jakarta.activation-api-1.2.1 +jakarta.xml.bind-api-2.3.2 + +--------------------------------------- +Eclipse Public License - v 2.0 +see: licenses/eclipse-public-license-2.0 + +jakarta.annotation-api-1.3.5 +jakarta.ws.rs-api-2.1.6 +javax.ws.rs-api-2.1.1 +hk2-api-2.6.1 +hk2-locator-2.6.1 +hk2-utils-2.6.1 +osgi-resource-locator-1.0.3 +aopalliance-repackaged-2.6.1 +jakarta.inject-2.6.1 +jersey-container-servlet-2.31 +jersey-container-servlet-core-2.31 +jersey-client-2.31 +jersey-hk2-2.31 +jersey-media-jaxb-2.31 + +--------------------------------------- +CDDL 1.1 + GPLv2 with classpath exception +see: licenses/CDDL+GPL-1.1 + +javax.servlet-api-3.1.0 +jaxb-api-2.3.0 +activation-1.1.1 + +--------------------------------------- +MIT License + +argparse4j-0.7.0, see: licenses/argparse-MIT +jopt-simple-5.0.4, see: licenses/jopt-simple-MIT +slf4j-api-1.7.30, see: licenses/slf4j-MIT +slf4j-log4j12-1.7.30, see: licenses/slf4j-MIT + +--------------------------------------- +BSD 2-Clause + +zstd-jni-1.4.9-1, see: licenses/zstd-jni-BSD-2-clause + +--------------------------------------- +BSD 3-Clause + +paranamer-2.8, see: licenses/paranamer-BSD-3-clause + +--------------------------------------- +Do What The F*ck You Want To Public License +see: licenses/DWTFYWTPL + +reflections-0.9.12 \ No newline at end of file diff --git a/hackfest/kafka/kafka_2.13-2.8.0/NOTICE b/hackfest/kafka/kafka_2.13-2.8.0/NOTICE new file mode 100644 index 0000000000000000000000000000000000000000..674c942b127bb637d086bd9caadb5f152358518c --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/NOTICE @@ -0,0 +1,19 @@ +Apache Kafka +Copyright 2021 The Apache Software Foundation. + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +This distribution has a binary dependency on jersey, which is available under the CDDL +License. The source code of jersey can be found at https://github.com/jersey/jersey/. + +The streams-scala (streams/streams-scala) module was donated by Lightbend and the original code was copyrighted by them: +Copyright (C) 2018 Lightbend Inc. +Copyright (C) 2017-2018 Alexis Seigneurin. + +This project contains the following code copied from Apache Hadoop: +clients/src/main/java/org/apache/kafka/common/utils/PureJavaCrc32C.java +Some portions of this file Copyright (c) 2004-2006 Intel Corporation and licensed under the BSD license. + +This project contains the following code copied from Apache Hive: +streams/src/main/java/org/apache/kafka/streams/state/internals/Murmur3.java diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-distributed.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-distributed.sh new file mode 100755 index 0000000000000000000000000000000000000000..b8088ad92345137d6861553619ba9843dce2fb5a --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-distributed.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] connect-distributed.properties" + exit 1 +fi + +base_dir=$(dirname $0) + +if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then + export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/connect-log4j.properties" +fi + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xms256M -Xmx2G" +fi + +EXTRA_ARGS=${EXTRA_ARGS-'-name connectDistributed'} + +COMMAND=$1 +case $COMMAND in + -daemon) + EXTRA_ARGS="-daemon "$EXTRA_ARGS + shift + ;; + *) + ;; +esac + +exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectDistributed "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-mirror-maker.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-mirror-maker.sh new file mode 100755 index 0000000000000000000000000000000000000000..8e2b2e162daac7e026c499da03f10ab1b08937a9 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-mirror-maker.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] mm2.properties" + exit 1 +fi + +base_dir=$(dirname $0) + +if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then + export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/connect-log4j.properties" +fi + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xms256M -Xmx2G" +fi + +EXTRA_ARGS=${EXTRA_ARGS-'-name mirrorMaker'} + +COMMAND=$1 +case $COMMAND in + -daemon) + EXTRA_ARGS="-daemon "$EXTRA_ARGS + shift + ;; + *) + ;; +esac + +exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS org.apache.kafka.connect.mirror.MirrorMaker "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-standalone.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-standalone.sh new file mode 100755 index 0000000000000000000000000000000000000000..441069fed31393c8469778538e504171a73eb304 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/connect-standalone.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] connect-standalone.properties" + exit 1 +fi + +base_dir=$(dirname $0) + +if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then + export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/connect-log4j.properties" +fi + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xms256M -Xmx2G" +fi + +EXTRA_ARGS=${EXTRA_ARGS-'-name connectStandalone'} + +COMMAND=$1 +case $COMMAND in + -daemon) + EXTRA_ARGS="-daemon "$EXTRA_ARGS + shift + ;; + *) + ;; +esac + +exec $(dirname $0)/kafka-run-class.sh $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectStandalone "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-acls.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-acls.sh new file mode 100755 index 0000000000000000000000000000000000000000..8fa65542e10bfa32e3a9fea7e0ec0d3161d92e92 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-acls.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.AclCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-broker-api-versions.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-broker-api-versions.sh new file mode 100755 index 0000000000000000000000000000000000000000..4f560a0a60cd599b6a66bc573167dee26d36c67d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-broker-api-versions.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.BrokerApiVersionsCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-cluster.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-cluster.sh new file mode 100755 index 0000000000000000000000000000000000000000..574007e9cd4b8ad540a3ab3918d52df195fd90a1 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-cluster.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.ClusterTool "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-configs.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-configs.sh new file mode 100755 index 0000000000000000000000000000000000000000..2f9eb8c239f596ec8d171f40ddec38a13177a2e8 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-configs.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConfigCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-consumer.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-consumer.sh new file mode 100755 index 0000000000000000000000000000000000000000..dbaac2b83b1890eeeeb1a19c5831254fe408d788 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-consumer.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-producer.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-producer.sh new file mode 100755 index 0000000000000000000000000000000000000000..e5187b8b5335fa2a688f9c18665266731ced0506 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-console-producer.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi +exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleProducer "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-groups.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-groups.sh new file mode 100755 index 0000000000000000000000000000000000000000..feb063de75693b73d0f874a03d14ce87294df7c5 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-groups.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.ConsumerGroupCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-perf-test.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-perf-test.sh new file mode 100755 index 0000000000000000000000000000000000000000..77cda721d6c5238d354f3f133bab93c5352edd6a --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-consumer-perf-test.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi +exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsumerPerformance "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delegation-tokens.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delegation-tokens.sh new file mode 100755 index 0000000000000000000000000000000000000000..49cb276ab318289f690c6855a326804d2cf720ab --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delegation-tokens.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.DelegationTokenCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delete-records.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delete-records.sh new file mode 100755 index 0000000000000000000000000000000000000000..8726f919992329db81c4e1b8da6765e34184f1e0 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-delete-records.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.DeleteRecordsCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-dump-log.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-dump-log.sh new file mode 100755 index 0000000000000000000000000000000000000000..a97ea7d3d9f8cf57b9ea41012ab8c9b92d389d8d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-dump-log.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.DumpLogSegments "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-features.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-features.sh new file mode 100755 index 0000000000000000000000000000000000000000..9dd9f16fd1b05568db04418be9c0c99adf8f9324 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-features.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.FeatureCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-leader-election.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-leader-election.sh new file mode 100755 index 0000000000000000000000000000000000000000..88baef398de95cd1cf737a6d8589d9fdd5a5ac3f --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-leader-election.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.LeaderElectionCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-log-dirs.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-log-dirs.sh new file mode 100755 index 0000000000000000000000000000000000000000..dc16edcc7c5ebefff42ea3089472560427f25727 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-log-dirs.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.LogDirsCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-metadata-shell.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-metadata-shell.sh new file mode 100755 index 0000000000000000000000000000000000000000..289f0c1b51f27cd6e93126bc51c81ab4357440db --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-metadata-shell.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.shell.MetadataShell "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-mirror-maker.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-mirror-maker.sh new file mode 100755 index 0000000000000000000000000000000000000000..981f2711af960be2dc2dc3ce2374c6db3303aa1a --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-mirror-maker.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.MirrorMaker "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-preferred-replica-election.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-preferred-replica-election.sh new file mode 100755 index 0000000000000000000000000000000000000000..638a92ad6e053092f95d0bedc8c6876b31b6bb97 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-preferred-replica-election.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.PreferredReplicaLeaderElectionCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-producer-perf-test.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-producer-perf-test.sh new file mode 100755 index 0000000000000000000000000000000000000000..73a62888a13d547fe21fc89d41035c775f26026f --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-producer-perf-test.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi +exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-reassign-partitions.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-reassign-partitions.sh new file mode 100755 index 0000000000000000000000000000000000000000..4c7f1bc35e0a98b2ba978ce07ab9465c841d8b1b --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-reassign-partitions.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.ReassignPartitionsCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-replica-verification.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-replica-verification.sh new file mode 100755 index 0000000000000000000000000000000000000000..4960836c0d034f338bec16fdb5e7dccc4fa18821 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-replica-verification.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.ReplicaVerificationTool "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-run-class.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-run-class.sh new file mode 100755 index 0000000000000000000000000000000000000000..3889be7e3e5f8d074cf94938ab9113c2fdb00df1 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-run-class.sh @@ -0,0 +1,331 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] [-name servicename] [-loggc] classname [opts]" + exit 1 +fi + +# CYGWIN == 1 if Cygwin is detected, else 0. +if [[ $(uname -a) =~ "CYGWIN" ]]; then + CYGWIN=1 +else + CYGWIN=0 +fi + +if [ -z "$INCLUDE_TEST_JARS" ]; then + INCLUDE_TEST_JARS=false +fi + +# Exclude jars not necessary for running commands. +regex="(-(test|test-sources|src|scaladoc|javadoc)\.jar|jar.asc)$" +should_include_file() { + if [ "$INCLUDE_TEST_JARS" = true ]; then + return 0 + fi + file=$1 + if [ -z "$(echo "$file" | egrep "$regex")" ] ; then + return 0 + else + return 1 + fi +} + +base_dir=$(dirname $0)/.. + +if [ -z "$SCALA_VERSION" ]; then + SCALA_VERSION=2.13.5 + if [[ -f "$base_dir/gradle.properties" ]]; then + SCALA_VERSION=`grep "^scalaVersion=" "$base_dir/gradle.properties" | cut -d= -f 2` + fi +fi + +if [ -z "$SCALA_BINARY_VERSION" ]; then + SCALA_BINARY_VERSION=$(echo $SCALA_VERSION | cut -f 1-2 -d '.') +fi + +# run ./gradlew copyDependantLibs to get all dependant jars in a local dir +shopt -s nullglob +if [ -z "$UPGRADE_KAFKA_STREAMS_TEST_VERSION" ]; then + for dir in "$base_dir"/core/build/dependant-libs-${SCALA_VERSION}*; + do + CLASSPATH="$CLASSPATH:$dir/*" + done +fi + +for file in "$base_dir"/examples/build/libs/kafka-examples*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +if [ -z "$UPGRADE_KAFKA_STREAMS_TEST_VERSION" ]; then + clients_lib_dir=$(dirname $0)/../clients/build/libs + streams_lib_dir=$(dirname $0)/../streams/build/libs + streams_dependant_clients_lib_dir=$(dirname $0)/../streams/build/dependant-libs-${SCALA_VERSION} +else + clients_lib_dir=/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs + streams_lib_dir=$clients_lib_dir + streams_dependant_clients_lib_dir=$streams_lib_dir +fi + + +for file in "$clients_lib_dir"/kafka-clients*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +for file in "$streams_lib_dir"/kafka-streams*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +if [ -z "$UPGRADE_KAFKA_STREAMS_TEST_VERSION" ]; then + for file in "$base_dir"/streams/examples/build/libs/kafka-streams-examples*.jar; + do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi + done +else + VERSION_NO_DOTS=`echo $UPGRADE_KAFKA_STREAMS_TEST_VERSION | sed 's/\.//g'` + SHORT_VERSION_NO_DOTS=${VERSION_NO_DOTS:0:((${#VERSION_NO_DOTS} - 1))} # remove last char, ie, bug-fix number + for file in "$base_dir"/streams/upgrade-system-tests-$SHORT_VERSION_NO_DOTS/build/libs/kafka-streams-upgrade-system-tests*.jar; + do + if should_include_file "$file"; then + CLASSPATH="$file":"$CLASSPATH" + fi + done + if [ "$SHORT_VERSION_NO_DOTS" = "0100" ]; then + CLASSPATH="/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs/zkclient-0.8.jar":"$CLASSPATH" + CLASSPATH="/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs/zookeeper-3.4.6.jar":"$CLASSPATH" + fi + if [ "$SHORT_VERSION_NO_DOTS" = "0101" ]; then + CLASSPATH="/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs/zkclient-0.9.jar":"$CLASSPATH" + CLASSPATH="/opt/kafka-$UPGRADE_KAFKA_STREAMS_TEST_VERSION/libs/zookeeper-3.4.8.jar":"$CLASSPATH" + fi +fi + +for file in "$streams_dependant_clients_lib_dir"/rocksdb*.jar; +do + CLASSPATH="$CLASSPATH":"$file" +done + +for file in "$streams_dependant_clients_lib_dir"/*hamcrest*.jar; +do + CLASSPATH="$CLASSPATH":"$file" +done + +for file in "$base_dir"/shell/build/libs/kafka-shell*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +for dir in "$base_dir"/shell/build/dependant-libs-${SCALA_VERSION}*; +do + CLASSPATH="$CLASSPATH:$dir/*" +done + +for file in "$base_dir"/tools/build/libs/kafka-tools*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +for dir in "$base_dir"/tools/build/dependant-libs-${SCALA_VERSION}*; +do + CLASSPATH="$CLASSPATH:$dir/*" +done + +for cc_pkg in "api" "transforms" "runtime" "file" "mirror" "mirror-client" "json" "tools" "basic-auth-extension" +do + for file in "$base_dir"/connect/${cc_pkg}/build/libs/connect-${cc_pkg}*.jar; + do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi + done + if [ -d "$base_dir/connect/${cc_pkg}/build/dependant-libs" ] ; then + CLASSPATH="$CLASSPATH:$base_dir/connect/${cc_pkg}/build/dependant-libs/*" + fi +done + +# classpath addition for release +for file in "$base_dir"/libs/*; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done + +for file in "$base_dir"/core/build/libs/kafka_${SCALA_BINARY_VERSION}*.jar; +do + if should_include_file "$file"; then + CLASSPATH="$CLASSPATH":"$file" + fi +done +shopt -u nullglob + +if [ -z "$CLASSPATH" ] ; then + echo "Classpath is empty. Please build the project first e.g. by running './gradlew jar -PscalaVersion=$SCALA_VERSION'" + exit 1 +fi + +# JMX settings +if [ -z "$KAFKA_JMX_OPTS" ]; then + KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false " +fi + +# JMX port to use +if [ $JMX_PORT ]; then + KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " +fi + +# Log directory to use +if [ "x$LOG_DIR" = "x" ]; then + LOG_DIR="$base_dir/logs" +fi + +# Log4j settings +if [ -z "$KAFKA_LOG4J_OPTS" ]; then + # Log to console. This is a tool. + LOG4J_DIR="$base_dir/config/tools-log4j.properties" + # If Cygwin is detected, LOG4J_DIR is converted to Windows format. + (( CYGWIN )) && LOG4J_DIR=$(cygpath --path --mixed "${LOG4J_DIR}") + KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:${LOG4J_DIR}" +else + # create logs directory + if [ ! -d "$LOG_DIR" ]; then + mkdir -p "$LOG_DIR" + fi +fi + +# If Cygwin is detected, LOG_DIR is converted to Windows format. +(( CYGWIN )) && LOG_DIR=$(cygpath --path --mixed "${LOG_DIR}") +KAFKA_LOG4J_OPTS="-Dkafka.logs.dir=$LOG_DIR $KAFKA_LOG4J_OPTS" + +# Generic jvm settings you want to add +if [ -z "$KAFKA_OPTS" ]; then + KAFKA_OPTS="" +fi + +# Set Debug options if enabled +if [ "x$KAFKA_DEBUG" != "x" ]; then + + # Use default ports + DEFAULT_JAVA_DEBUG_PORT="5005" + + if [ -z "$JAVA_DEBUG_PORT" ]; then + JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT" + fi + + # Use the defaults if JAVA_DEBUG_OPTS was not set + DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=${DEBUG_SUSPEND_FLAG:-n},address=$JAVA_DEBUG_PORT" + if [ -z "$JAVA_DEBUG_OPTS" ]; then + JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS" + fi + + echo "Enabling Java debug options: $JAVA_DEBUG_OPTS" + KAFKA_OPTS="$JAVA_DEBUG_OPTS $KAFKA_OPTS" +fi + +# Which java to use +if [ -z "$JAVA_HOME" ]; then + JAVA="java" +else + JAVA="$JAVA_HOME/bin/java" +fi + +# Memory options +if [ -z "$KAFKA_HEAP_OPTS" ]; then + KAFKA_HEAP_OPTS="-Xmx256M" +fi + +# JVM performance options +# MaxInlineLevel=15 is the default since JDK 14 and can be removed once older JDKs are no longer supported +if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then + KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true" +fi + +while [ $# -gt 0 ]; do + COMMAND=$1 + case $COMMAND in + -name) + DAEMON_NAME=$2 + CONSOLE_OUTPUT_FILE=$LOG_DIR/$DAEMON_NAME.out + shift 2 + ;; + -loggc) + if [ -z "$KAFKA_GC_LOG_OPTS" ]; then + GC_LOG_ENABLED="true" + fi + shift + ;; + -daemon) + DAEMON_MODE="true" + shift + ;; + *) + break + ;; + esac +done + +# GC options +GC_FILE_SUFFIX='-gc.log' +GC_LOG_FILE_NAME='' +if [ "x$GC_LOG_ENABLED" = "xtrue" ]; then + GC_LOG_FILE_NAME=$DAEMON_NAME$GC_FILE_SUFFIX + + # The first segment of the version number, which is '1' for releases before Java 9 + # it then becomes '9', '10', ... + # Some examples of the first line of `java --version`: + # 8 -> java version "1.8.0_152" + # 9.0.4 -> java version "9.0.4" + # 10 -> java version "10" 2018-03-20 + # 10.0.1 -> java version "10.0.1" 2018-04-17 + # We need to match to the end of the line to prevent sed from printing the characters that do not match + JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p') + if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then + KAFKA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=100M" + else + KAFKA_GC_LOG_OPTS="-Xloggc:$LOG_DIR/$GC_LOG_FILE_NAME -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" + fi +fi + +# Remove a possible colon prefix from the classpath (happens at lines like `CLASSPATH="$CLASSPATH:$file"` when CLASSPATH is blank) +# Syntax used on the right side is native Bash string manipulation; for more details see +# http://tldp.org/LDP/abs/html/string-manipulation.html, specifically the section titled "Substring Removal" +CLASSPATH=${CLASSPATH#:} + +# If Cygwin is detected, classpath is converted to Windows format. +(( CYGWIN )) && CLASSPATH=$(cygpath --path --mixed "${CLASSPATH}") + +# Launch mode +if [ "x$DAEMON_MODE" = "xtrue" ]; then + nohup "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null & +else + exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@" +fi diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-start.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-start.sh new file mode 100755 index 0000000000000000000000000000000000000000..5a53126172de9d024891942d9f4748b7fcd4592b --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-start.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] server.properties [--override property=value]*" + exit 1 +fi +base_dir=$(dirname $0) + +if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then + export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties" +fi + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" +fi + +EXTRA_ARGS=${EXTRA_ARGS-'-name kafkaServer -loggc'} + +COMMAND=$1 +case $COMMAND in + -daemon) + EXTRA_ARGS="-daemon "$EXTRA_ARGS + shift + ;; + *) + ;; +esac + +exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-stop.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-stop.sh new file mode 100755 index 0000000000000000000000000000000000000000..437189f4a5b4ca92579f5803762e392eb31bb6f7 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-server-stop.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# 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. +SIGNAL=${SIGNAL:-TERM} + +OSNAME=$(uname -s) +if [[ "$OSNAME" == "OS/390" ]]; then + if [ -z $JOBNAME ]; then + JOBNAME="KAFKSTRT" + fi + PIDS=$(ps -A -o pid,jobname,comm | grep -i $JOBNAME | grep java | grep -v grep | awk '{print $1}') +elif [[ "$OSNAME" == "OS400" ]]; then + PIDS=$(ps -Af | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $2}') +else + PIDS=$(ps ax | grep ' kafka\.Kafka ' | grep java | grep -v grep | awk '{print $1}') +fi + +if [ -z "$PIDS" ]; then + echo "No kafka server to stop" + exit 1 +else + kill -s $SIGNAL $PIDS +fi diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-storage.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-storage.sh new file mode 100755 index 0000000000000000000000000000000000000000..eef93423877f02afe15e9a517f76d700baba522d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-storage.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.StorageTool "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-streams-application-reset.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-streams-application-reset.sh new file mode 100755 index 0000000000000000000000000000000000000000..336373254004ea9b2027082b1efcedbf9ab8ddd4 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-streams-application-reset.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi + +exec $(dirname $0)/kafka-run-class.sh kafka.tools.StreamsResetter "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-topics.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-topics.sh new file mode 100755 index 0000000000000000000000000000000000000000..ad6a2d4d2a0160c0fba70820a70a6f6d208b5ca7 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-topics.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-consumer.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-consumer.sh new file mode 100755 index 0000000000000000000000000000000000000000..852847df03ba5cfe420d9337d5c76f810383092f --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-consumer.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi +exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.VerifiableConsumer "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-producer.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-producer.sh new file mode 100755 index 0000000000000000000000000000000000000000..b59bae7d2beae882715ce5b8cf83fe8ef3e3acf0 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/kafka-verifiable-producer.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# 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. + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M" +fi +exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.VerifiableProducer "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/trogdor.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/trogdor.sh new file mode 100755 index 0000000000000000000000000000000000000000..3324c4ea8ec3e7ae8d687d67250d8bfd71ec98cf --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/trogdor.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# 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. + +usage() { + cat <nul 2>&1 + IF NOT ERRORLEVEL 1 ( + rem 32-bit OS + set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M + ) ELSE ( + rem 64-bit OS + set KAFKA_HEAP_OPTS=-Xmx1G -Xms1G + ) +) +"%~dp0kafka-run-class.bat" kafka.Kafka %* +EndLocal diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-server-stop.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-server-stop.bat new file mode 100644 index 0000000000000000000000000000000000000000..676577cf958645fde5ec95cb521f7e02f1616099 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-server-stop.bat @@ -0,0 +1,18 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +wmic process where (commandline like "%%kafka.Kafka%%" and not name="wmic.exe") delete +rem ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}' | xargs kill -SIGTERM diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-streams-application-reset.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-streams-application-reset.bat new file mode 100644 index 0000000000000000000000000000000000000000..1cfb6f518c824e0e77db2272ef65ca0d49662e21 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-streams-application-reset.bat @@ -0,0 +1,23 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +SetLocal +IF ["%KAFKA_HEAP_OPTS%"] EQU [""] ( + set KAFKA_HEAP_OPTS=-Xmx512M +) + +"%~dp0kafka-run-class.bat" kafka.tools.StreamsResetter %* +EndLocal diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-topics.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-topics.bat new file mode 100644 index 0000000000000000000000000000000000000000..677b09d077d99691b8b1f0197f2e4a3676e4b27b --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/kafka-topics.bat @@ -0,0 +1,17 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +"%~dp0kafka-run-class.bat" kafka.admin.TopicCommand %* diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-start.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-start.bat new file mode 100644 index 0000000000000000000000000000000000000000..f201a585135d2db55a15d8e45004feb6a536fe7f --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-start.bat @@ -0,0 +1,30 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +IF [%1] EQU [] ( + echo USAGE: %0 zookeeper.properties + EXIT /B 1 +) + +SetLocal +IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] ( + set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../config/log4j.properties +) +IF ["%KAFKA_HEAP_OPTS%"] EQU [""] ( + set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M +) +"%~dp0kafka-run-class.bat" org.apache.zookeeper.server.quorum.QuorumPeerMain %* +EndLocal diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-stop.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-stop.bat new file mode 100644 index 0000000000000000000000000000000000000000..8b57dd8d63069ef579e7f41a60bba71f1018e29d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-server-stop.bat @@ -0,0 +1,17 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +wmic process where (commandline like "%%zookeeper%%" and not name="wmic.exe") delete diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-shell.bat b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-shell.bat new file mode 100644 index 0000000000000000000000000000000000000000..f1c86c430c1709744a0f31acbc70706dc27cfbec --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/windows/zookeeper-shell.bat @@ -0,0 +1,22 @@ +@echo off +rem Licensed to the Apache Software Foundation (ASF) under one or more +rem contributor license agreements. See the NOTICE file distributed with +rem this work for additional information regarding copyright ownership. +rem The ASF licenses this file to You under the Apache License, Version 2.0 +rem (the "License"); you may not use this file except in compliance with +rem the License. You may obtain a copy of the License at +rem +rem http://www.apache.org/licenses/LICENSE-2.0 +rem +rem Unless required by applicable law or agreed to in writing, software +rem distributed under the License is distributed on an "AS IS" BASIS, +rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +rem See the License for the specific language governing permissions and +rem limitations under the License. + +IF [%1] EQU [] ( + echo USAGE: %0 zookeeper_host:port[/path] [-zk-tls-config-file file] [args...] + EXIT /B 1 +) + +"%~dp0kafka-run-class.bat" org.apache.zookeeper.ZooKeeperMainWithTlsSupportForKafka -server %* diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-security-migration.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-security-migration.sh new file mode 100755 index 0000000000000000000000000000000000000000..722bde7cc4c621cf8f7f7279397f7776fb66eff9 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-security-migration.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +exec $(dirname $0)/kafka-run-class.sh kafka.admin.ZkSecurityMigrator "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-start.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-start.sh new file mode 100755 index 0000000000000000000000000000000000000000..bd9c1142817c082b19b1c71cc39fb0149ed7dba1 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-start.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 [-daemon] zookeeper.properties" + exit 1 +fi +base_dir=$(dirname $0) + +if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then + export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties" +fi + +if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then + export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M" +fi + +EXTRA_ARGS=${EXTRA_ARGS-'-name zookeeper -loggc'} + +COMMAND=$1 +case $COMMAND in + -daemon) + EXTRA_ARGS="-daemon "$EXTRA_ARGS + shift + ;; + *) + ;; +esac + +exec $base_dir/kafka-run-class.sh $EXTRA_ARGS org.apache.zookeeper.server.quorum.QuorumPeerMain "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-stop.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-stop.sh new file mode 100755 index 0000000000000000000000000000000000000000..11665f32707f872698de907ea3580db83d427d14 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-server-stop.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# 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. +SIGNAL=${SIGNAL:-TERM} + +OSNAME=$(uname -s) +if [[ "$OSNAME" == "OS/390" ]]; then + if [ -z $JOBNAME ]; then + JOBNAME="ZKEESTRT" + fi + PIDS=$(ps -A -o pid,jobname,comm | grep -i $JOBNAME | grep java | grep -v grep | awk '{print $1}') +elif [[ "$OSNAME" == "OS400" ]]; then + PIDS=$(ps -Af | grep java | grep -i QuorumPeerMain | grep -v grep | awk '{print $2}') +else + PIDS=$(ps ax | grep java | grep -i QuorumPeerMain | grep -v grep | awk '{print $1}') +fi + +if [ -z "$PIDS" ]; then + echo "No zookeeper server to stop" + exit 1 +else + kill -s $SIGNAL $PIDS +fi diff --git a/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-shell.sh b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-shell.sh new file mode 100755 index 0000000000000000000000000000000000000000..2f1d0f2c61670a56f89cb62c52a1a3373fafeab1 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/bin/zookeeper-shell.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# 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. + +if [ $# -lt 1 ]; +then + echo "USAGE: $0 zookeeper_host:port[/path] [-zk-tls-config-file file] [args...]" + exit 1 +fi + +exec $(dirname $0)/kafka-run-class.sh org.apache.zookeeper.ZooKeeperMainWithTlsSupportForKafka -server "$@" diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-sink.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-sink.properties new file mode 100644 index 0000000000000000000000000000000000000000..e240a8f0dd8dd41b22c77fc80671e6ece995dba4 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-sink.properties @@ -0,0 +1,19 @@ +# 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. + +name=local-console-sink +connector.class=org.apache.kafka.connect.file.FileStreamSinkConnector +tasks.max=1 +topics=connect-test \ No newline at end of file diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-source.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-source.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0e20690e7c6446c7a8e6de8d47b17148fb9a0cf --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-console-source.properties @@ -0,0 +1,19 @@ +# 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. + +name=local-console-source +connector.class=org.apache.kafka.connect.file.FileStreamSourceConnector +tasks.max=1 +topic=connect-test \ No newline at end of file diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-distributed.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-distributed.properties new file mode 100644 index 0000000000000000000000000000000000000000..72db145f3f892fb9eee72f94e2bee4b78f36a196 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-distributed.properties @@ -0,0 +1,86 @@ +## +# 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. +## + +# This file contains some of the configurations for the Kafka Connect distributed worker. This file is intended +# to be used with the examples, and some settings may differ from those used in a production system, especially +# the `bootstrap.servers` and those specifying replication factors. + +# A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. +bootstrap.servers=localhost:9092 + +# unique name for the cluster, used in forming the Connect cluster group. Note that this must not conflict with consumer group IDs +group.id=connect-cluster + +# The converters specify the format of data in Kafka and how to translate it into Connect data. Every Connect user will +# need to configure these based on the format they want their data in when loaded from or stored into Kafka +key.converter=org.apache.kafka.connect.json.JsonConverter +value.converter=org.apache.kafka.connect.json.JsonConverter +# Converter-specific settings can be passed in by prefixing the Converter's setting with the converter we want to apply +# it to +key.converter.schemas.enable=true +value.converter.schemas.enable=true + +# Topic to use for storing offsets. This topic should have many partitions and be replicated and compacted. +# Kafka Connect will attempt to create the topic automatically when needed, but you can always manually create +# the topic before starting Kafka Connect if a specific topic configuration is needed. +# Most users will want to use the built-in default replication factor of 3 or in some cases even specify a larger value. +# Since this means there must be at least as many brokers as the maximum replication factor used, we'd like to be able +# to run this example on a single-broker cluster and so here we instead set the replication factor to 1. +offset.storage.topic=connect-offsets +offset.storage.replication.factor=1 +#offset.storage.partitions=25 + +# Topic to use for storing connector and task configurations; note that this should be a single partition, highly replicated, +# and compacted topic. Kafka Connect will attempt to create the topic automatically when needed, but you can always manually create +# the topic before starting Kafka Connect if a specific topic configuration is needed. +# Most users will want to use the built-in default replication factor of 3 or in some cases even specify a larger value. +# Since this means there must be at least as many brokers as the maximum replication factor used, we'd like to be able +# to run this example on a single-broker cluster and so here we instead set the replication factor to 1. +config.storage.topic=connect-configs +config.storage.replication.factor=1 + +# Topic to use for storing statuses. This topic can have multiple partitions and should be replicated and compacted. +# Kafka Connect will attempt to create the topic automatically when needed, but you can always manually create +# the topic before starting Kafka Connect if a specific topic configuration is needed. +# Most users will want to use the built-in default replication factor of 3 or in some cases even specify a larger value. +# Since this means there must be at least as many brokers as the maximum replication factor used, we'd like to be able +# to run this example on a single-broker cluster and so here we instead set the replication factor to 1. +status.storage.topic=connect-status +status.storage.replication.factor=1 +#status.storage.partitions=5 + +# Flush much faster than normal, which is useful for testing/debugging +offset.flush.interval.ms=10000 + +# These are provided to inform the user about the presence of the REST host and port configs +# Hostname & Port for the REST API to listen on. If this is set, it will bind to the interface used to listen to requests. +#rest.host.name= +#rest.port=8083 + +# The Hostname & Port that will be given out to other workers to connect to i.e. URLs that are routable from other servers. +#rest.advertised.host.name= +#rest.advertised.port= + +# Set to a list of filesystem paths separated by commas (,) to enable class loading isolation for plugins +# (connectors, converters, transformations). The list should consist of top level directories that include +# any combination of: +# a) directories immediately containing jars with plugins and their dependencies +# b) uber-jars with plugins and their dependencies +# c) directories immediately containing the package directory structure of classes of plugins and their dependencies +# Examples: +# plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors, +#plugin.path= diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-sink.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-sink.properties new file mode 100644 index 0000000000000000000000000000000000000000..594ccc6e953c5494a9ac8958b848a267e1631dd8 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-sink.properties @@ -0,0 +1,20 @@ +# 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. + +name=local-file-sink +connector.class=FileStreamSink +tasks.max=1 +file=test.sink.txt +topics=connect-test \ No newline at end of file diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-source.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-source.properties new file mode 100644 index 0000000000000000000000000000000000000000..599cf4cb2ac79e7c015f6e7b78fd8eb037cb2091 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-file-source.properties @@ -0,0 +1,20 @@ +# 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. + +name=local-file-source +connector.class=FileStreamSource +tasks.max=1 +file=test.txt +topic=connect-test \ No newline at end of file diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-log4j.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..f695e37eb348b6efa6752e28fbbe0ae67f4d68c5 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-log4j.properties @@ -0,0 +1,43 @@ +# 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. + +log4j.rootLogger=INFO, stdout, connectAppender + +# Send the logs to the console. +# +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout + +# Send the logs to a file, rolling the file at midnight local time. For example, the `File` option specifies the +# location of the log files (e.g. ${kafka.logs.dir}/connect.log), and at midnight local time the file is closed +# and copied in the same directory but with a filename that ends in the `DatePattern` option. +# +log4j.appender.connectAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.connectAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.connectAppender.File=${kafka.logs.dir}/connect.log +log4j.appender.connectAppender.layout=org.apache.log4j.PatternLayout + +# The `%X{connector.context}` parameter in the layout includes connector-specific and task-specific information +# in the log message, where appropriate. This makes it easier to identify those log messages that apply to a +# specific connector. Simply add this parameter to the log layout configuration below to include the contextual information. +# +connect.log.pattern=[%d] %p %m (%c:%L)%n +#connect.log.pattern=[%d] %p %X{connector.context}%m (%c:%L)%n + +log4j.appender.stdout.layout.ConversionPattern=${connect.log.pattern} +log4j.appender.connectAppender.layout.ConversionPattern=${connect.log.pattern} + +log4j.logger.org.apache.zookeeper=ERROR +log4j.logger.org.reflections=ERROR diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-mirror-maker.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-mirror-maker.properties new file mode 100644 index 0000000000000000000000000000000000000000..40afda5e4ad68d3c76345d63b4b5bb1d4a4bf301 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-mirror-maker.properties @@ -0,0 +1,59 @@ +# Licensed to the Apache Software Foundation (ASF) under A 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. +# see org.apache.kafka.clients.consumer.ConsumerConfig for more details + +# Sample MirrorMaker 2.0 top-level configuration file +# Run with ./bin/connect-mirror-maker.sh connect-mirror-maker.properties + +# specify any number of cluster aliases +clusters = A, B + +# connection information for each cluster +# This is a comma separated host:port pairs for each cluster +# for e.g. "A_host1:9092, A_host2:9092, A_host3:9092" +A.bootstrap.servers = A_host1:9092, A_host2:9092, A_host3:9092 +B.bootstrap.servers = B_host1:9092, B_host2:9092, B_host3:9092 + +# enable and configure individual replication flows +A->B.enabled = true + +# regex which defines which topics gets replicated. For eg "foo-.*" +A->B.topics = .* + +B->A.enabled = true +B->A.topics = .* + +# Setting replication factor of newly created remote topics +replication.factor=1 + +############################# Internal Topic Settings ############################# +# The replication factor for mm2 internal topics "heartbeats", "B.checkpoints.internal" and +# "mm2-offset-syncs.B.internal" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +checkpoints.topic.replication.factor=1 +heartbeats.topic.replication.factor=1 +offset-syncs.topic.replication.factor=1 + +# The replication factor for connect internal topics "mm2-configs.B.internal", "mm2-offsets.B.internal" and +# "mm2-status.B.internal" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +offset.storage.replication.factor=1 +status.storage.replication.factor=1 +config.storage.replication.factor=1 + +# customize as needed +# replication.policy.separator = _ +# sync.topic.acls.enabled = false +# emit.heartbeats.interval.seconds = 5 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/connect-standalone.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-standalone.properties new file mode 100644 index 0000000000000000000000000000000000000000..a340a3bf315cc76d1bf5aae1e62932ebd5faf792 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/connect-standalone.properties @@ -0,0 +1,41 @@ +# 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. + +# These are defaults. This file just demonstrates how to override some settings. +bootstrap.servers=localhost:9092 + +# The converters specify the format of data in Kafka and how to translate it into Connect data. Every Connect user will +# need to configure these based on the format they want their data in when loaded from or stored into Kafka +key.converter=org.apache.kafka.connect.json.JsonConverter +value.converter=org.apache.kafka.connect.json.JsonConverter +# Converter-specific settings can be passed in by prefixing the Converter's setting with the converter we want to apply +# it to +key.converter.schemas.enable=true +value.converter.schemas.enable=true + +offset.storage.file.filename=/tmp/connect.offsets +# Flush much faster than normal, which is useful for testing/debugging +offset.flush.interval.ms=10000 + +# Set to a list of filesystem paths separated by commas (,) to enable class loading isolation for plugins +# (connectors, converters, transformations). The list should consist of top level directories that include +# any combination of: +# a) directories immediately containing jars with plugins and their dependencies +# b) uber-jars with plugins and their dependencies +# c) directories immediately containing the package directory structure of classes of plugins and their dependencies +# Note: symlinks will be followed to discover dependencies or plugins. +# Examples: +# plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors, +#plugin.path= diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/consumer.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/consumer.properties new file mode 100644 index 0000000000000000000000000000000000000000..01bb12eb0899f43945307afeba09e6b96013defa --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/consumer.properties @@ -0,0 +1,26 @@ +# 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. +# see org.apache.kafka.clients.consumer.ConsumerConfig for more details + +# list of brokers used for bootstrapping knowledge about the rest of the cluster +# format: host1:port1,host2:port2 ... +bootstrap.servers=localhost:9092 + +# consumer group id +group.id=test-consumer-group + +# What to do when there is no initial offset in Kafka or if the current +# offset does not exist any more on the server: latest, earliest, none +#auto.offset.reset= diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/README.md b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/README.md new file mode 100644 index 0000000000000000000000000000000000000000..466dbe08e193c55e2c64d77fb6284e51fddb0fec --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/README.md @@ -0,0 +1,178 @@ +KRaft (aka KIP-500) mode Early Access Release +========================================================= + +# Introduction +It is now possible to run Apache Kafka without Apache ZooKeeper! We call this the [Kafka Raft metadata mode](https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum), typically shortened to `KRaft mode`. +`KRaft` is intended to be pronounced like `craft` (as in `craftsmanship`). It is currently *EARLY ACCESS AND SHOULD NOT BE USED IN PRODUCTION*, but it +is available for testing in the Kafka 2.8 release. + +When the Kafka cluster is in KRaft mode, it does not store its metadata in ZooKeeper. In fact, you do not have to run ZooKeeper at all, because it stores its metadata in a KRaft quorum of controller nodes. + +KRaft mode has many benefits -- some obvious, and some not so obvious. Clearly, it is nice to manage and configure one service rather than two services. In addition, you can now run a single process Kafka cluster. +Most important of all, KRaft mode is more scalable. We expect to be able to [support many more topics and partitions](https://www.confluent.io/kafka-summit-san-francisco-2019/kafka-needs-no-keeper/) in this mode. + +# Quickstart + +## Warning +KRaft mode in Kafka 2.8 is provided for testing only, *NOT* for production. We do not yet support upgrading existing ZooKeeper-based Kafka clusters into this mode. In fact, when Kafka 3.0 is released, +it will not be possible to upgrade your KRaft clusters from 2.8 to 3.0. There may be bugs, including serious ones. You should *assume that your data could be lost at any time* if you try the early access release of KRaft mode. + +## Generate a cluster ID +The first step is to generate an ID for your new cluster, using the kafka-storage tool: + +~~~~ +$ ./bin/kafka-storage.sh random-uuid +xtzWWN4bTjitpL3kfd9s5g +~~~~ + +## Format Storage Directories +The next step is to format your storage directories. If you are running in single-node mode, you can do this with one command: + +~~~~ +$ ./bin/kafka-storage.sh format -t -c ./config/kraft/server.properties +Formatting /tmp/kraft-combined-logs +~~~~ + +If you are using multiple nodes, then you should run the format command on each node. Be sure to use the same cluster ID for each one. + +## Start the Kafka Server +Finally, you are ready to start the Kafka server on each node. + +~~~~ +$ ./bin/kafka-server-start.sh ./config/kraft/server.properties +[2021-02-26 15:37:11,071] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$) +[2021-02-26 15:37:11,294] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util) +[2021-02-26 15:37:11,466] INFO [Log partition=@metadata-0, dir=/tmp/kraft-combined-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log) +[2021-02-26 15:37:11,509] INFO [raft-expiration-reaper]: Starting (kafka.raft.TimingWheelExpirationService$ExpiredOperationReaper) +[2021-02-26 15:37:11,640] INFO [RaftManager nodeId=1] Completed transition to Unattached(epoch=0, voters=[1], electionTimeoutMs=9037) (org.apache.kafka.raft.QuorumState) +... +~~~~ + +Just like with a ZooKeeper based broker, you can connect to port 9092 (or whatever port you configured) to perform administrative operations or produce or consume data. + +~~~~ +$ ./bin/kafka-topics.sh --create --topic foo --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092 +Created topic foo. +~~~~ + +# Deployment + +## Controller Servers +In KRaft mode, only a small group of specially selected servers can act as controllers (unlike the ZooKeeper-based mode, where any server can become the +Controller). The specially selected controller servers will participate in the metadata quorum. Each controller server is either active, or a hot +standby for the current active controller server. + +You will typically select 3 or 5 servers for this role, depending on factors like cost and the number of concurrent failures your system should withstand +without availability impact. Just like with ZooKeeper, you must keep a majority of the controllers alive in order to maintain availability. So if you have 3 +controllers, you can tolerate 1 failure; with 5 controllers, you can tolerate 2 failures. + +## Process Roles +Each Kafka server now has a new configuration key called `process.roles` which can have the following values: + +* If `process.roles` is set to `broker`, the server acts as a broker in KRaft mode. +* If `process.roles` is set to `controller`, the server acts as a controller in KRaft mode. +* If `process.roles` is set to `broker,controller`, the server acts as both a broker and a controller in KRaft mode. +* If `process.roles` is not set at all then we are assumed to be in ZooKeeper mode. As mentioned earlier, you can't currently transition back and forth between ZooKeeper mode and KRaft mode without reformatting. + +Nodes that act as both brokers and controllers are referred to as "combined" nodes. Combined nodes are simpler to operate for simple use cases and allow you to avoid +some fixed memory overheads associated with JVMs. The key disadvantage is that the controller will be less isolated from the rest of the system. For example, if activity on the broker causes an out of +memory condition, the controller part of the server is not isolated from that OOM condition. + +## Quorum Voters +All nodes in the system must set the `controller.quorum.voters` configuration. This identifies the quorum controller servers that should be used. All the controllers must be enumerated. +This is similar to how, when using ZooKeeper, the `zookeeper.connect` configuration must contain all the ZooKeeper servers. Unlike with the ZooKeeper config, however, `controller.quorum.voters` +also has IDs for each node. The format is id1@host1:port1,id2@host2:port2, etc. + +So if you have 10 brokers and 3 controllers named controller1, controller2, controller3, you might have the following configuration on controller1: +``` +process.roles=controller +node.id=1 +listeners=CONTROLLER://controller1.example.com:9093 +controller.quorum.voters=1@controller1.example.com:9093,2@controller2.example.com:9093,3@controller3.example.com:9093 +``` + +Each broker and each controller must set `controller.quorum.voters`. Note that the node ID supplied in the `controller.quorum.voters` configuration must match that supplied to the server. +So on controller1, node.id must be set to 1, and so forth. Note that there is no requirement for controller IDs to start at 0 or 1. However, the easiest and least confusing way to allocate +node IDs is probably just to give each server a numeric ID, starting from 0. + +Note that clients never need to configure `controller.quorum.voters`; only servers do. + +## Kafka Storage Tool +As described above in the QuickStart section, you must use the `kafka-storage.sh` tool to generate a cluster ID for your new cluster, and then run the format command on each node before starting the node. + +This is different from how Kafka has operated in the past. Previously, Kafka would format blank storage directories automatically, and also generate a new cluster UUID automatically. One reason for the change +is that auto-formatting can sometimes obscure an error condition. For example, under UNIX, if a data directory can't be mounted, it may show up as blank. In this case, auto-formatting would be the wrong thing to do. + +This is particularly important for the metadata log maintained by the controller servers. If two controllers out of three controllers were able to start with blank logs, a leader might be able to be elected with +nothing in the log, which would cause all metadata to be lost. + +# Missing Features +We do not yet support generating or loading KIP-630 metadata snapshots. This means that after a while, the time required to restart a broker will become very large. This is a known issue and we are working on +completing snapshots for the next release. + +We also don't support any kind of upgrade right now, either to or from KRaft mode. This is another important gap that we are working on. + +Finally, the following Kafka features have not yet been fully implemented: + +* Support for certain security features: configuring an Authorizer, setting up SCRAM, delegation tokens, and so forth +* Support for transactions and exactly-once semantics +* Support for adding partitions to existing topics +* Support for partition reassignment +* Support for some configurations, like enabling unclean leader election by default or dynamically changing broker endpoints +* Support for KIP-112 "JBOD" modes +* Support for KIP-631 controller metrics + +We've tried to make it clear when a feature is not supported in the early access release, but you may encounter some rough edges. We will cover these feature gaps incrementally in the `trunk` branch. + +# Debugging +If you encounter an issue, you might want to take a look at the metadata log. + +## kafka-dump-log +One way to view the metadata log is with kafka-dump-log.sh tool, like so: + +~~~~ +$ ./bin/kafka-dump-log.sh --cluster-metadata-decoder --skip-record-metadata --files /tmp/kraft-combined-logs/\@metadata-0/*.log +Dumping /tmp/kraft-combined-logs/@metadata-0/00000000000000000000.log +Starting offset: 0 +baseOffset: 0 lastOffset: 0 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 1 isTransactional: false isControl: true position: 0 CreateTime: 1614382631640 size: 89 magic: 2 compresscodec: NONE crc: 1438115474 isvalid: true + +baseOffset: 1 lastOffset: 1 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 1 isTransactional: false isControl: false position: 89 CreateTime: 1614382632329 size: 137 magic: 2 compresscodec: NONE crc: 1095855865 isvalid: true + payload: {"type":"REGISTER_BROKER_RECORD","version":0,"data":{"brokerId":1,"incarnationId":"P3UFsWoNR-erL9PK98YLsA","brokerEpoch":0,"endPoints":[{"name":"PLAINTEXT","host":"localhost","port":9092,"securityProtocol":0}],"features":[],"rack":null}} +baseOffset: 2 lastOffset: 2 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 1 isTransactional: false isControl: false position: 226 CreateTime: 1614382632453 size: 83 magic: 2 compresscodec: NONE crc: 455187130 isvalid: true + payload: {"type":"UNFENCE_BROKER_RECORD","version":0,"data":{"id":1,"epoch":0}} +baseOffset: 3 lastOffset: 3 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 1 isTransactional: false isControl: false position: 309 CreateTime: 1614382634484 size: 83 magic: 2 compresscodec: NONE crc: 4055692847 isvalid: true + payload: {"type":"FENCE_BROKER_RECORD","version":0,"data":{"id":1,"epoch":0}} +baseOffset: 4 lastOffset: 4 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: true position: 392 CreateTime: 1614382671857 size: 89 magic: 2 compresscodec: NONE crc: 1318571838 isvalid: true + +baseOffset: 5 lastOffset: 5 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 481 CreateTime: 1614382672440 size: 137 magic: 2 compresscodec: NONE crc: 841144615 isvalid: true + payload: {"type":"REGISTER_BROKER_RECORD","version":0,"data":{"brokerId":1,"incarnationId":"RXRJu7cnScKRZOnWQGs86g","brokerEpoch":4,"endPoints":[{"name":"PLAINTEXT","host":"localhost","port":9092,"securityProtocol":0}],"features":[],"rack":null}} +baseOffset: 6 lastOffset: 6 count: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 618 CreateTime: 1614382672544 size: 83 magic: 2 compresscodec: NONE crc: 4155905922 isvalid: true + payload: {"type":"UNFENCE_BROKER_RECORD","version":0,"data":{"id":1,"epoch":4}} +baseOffset: 7 lastOffset: 8 count: 2 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 2 isTransactional: false isControl: false position: 701 CreateTime: 1614382712158 size: 159 magic: 2 compresscodec: NONE crc: 3726758683 isvalid: true + payload: {"type":"TOPIC_RECORD","version":0,"data":{"name":"foo","topicId":"5zoAlv-xEh9xRANKXt1Lbg"}} + payload: {"type":"PARTITION_RECORD","version":0,"data":{"partitionId":0,"topicId":"5zoAlv-xEh9xRANKXt1Lbg","replicas":[1],"isr":[1],"removingReplicas":null,"addingReplicas":null,"leader":1,"leaderEpoch":0,"partitionEpoch":0}} +~~~~ + +## The Metadata Shell +Another tool for examining the metadata logs is the Kafka metadata shell. Just like the ZooKeeper shell, this allows you to inspect the metadata of the cluster. + +~~~~ +$ ./bin/kafka-metadata-shell.sh --snapshot /tmp/kraft-combined-logs/\@metadata-0/00000000000000000000.log +>> ls / +brokers local metadataQuorum topicIds topics +>> ls /topics +foo +>> cat /topics/foo/0/data +{ + "partitionId" : 0, + "topicId" : "5zoAlv-xEh9xRANKXt1Lbg", + "replicas" : [ 1 ], + "isr" : [ 1 ], + "removingReplicas" : null, + "addingReplicas" : null, + "leader" : 1, + "leaderEpoch" : 0, + "partitionEpoch" : 0 +} +>> exit +~~~~ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/broker.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/broker.properties new file mode 100644 index 0000000000000000000000000000000000000000..1b71803093acd9ca92e6aa0f1cd4b7984a4c2221 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/broker.properties @@ -0,0 +1,128 @@ +# 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. + +# +# This configuration file is intended for use in KRaft mode, where +# Apache ZooKeeper is not present. See config/kraft/README.md for details. +# + +############################# Server Basics ############################# + +# The role of this server. Setting this puts us in KRaft mode +process.roles=broker + +# The node id associated with this instance's roles +node.id=1 + +# The connect string for the controller quorum +controller.quorum.voters=1@localhost:9093 + +############################# Socket Server Settings ############################# + +# The address the socket server listens on. It will get the value returned from +# java.net.InetAddress.getCanonicalHostName() if not configured. +# FORMAT: +# listeners = listener_name://host_name:port +# EXAMPLE: +# listeners = PLAINTEXT://your.host.name:9092 +listeners=PLAINTEXT://localhost:9092 +inter.broker.listener.name=PLAINTEXT + +# Hostname and port the broker will advertise to producers and consumers. If not set, +# it uses the value for "listeners" if configured. Otherwise, it will use the value +# returned from java.net.InetAddress.getCanonicalHostName(). +advertised.listeners=PLAINTEXT://localhost:9092 + +# Listener, host name, and port for the controller to advertise to the brokers. If +# this server is a controller, this listener must be configured. +controller.listener.names=CONTROLLER + +# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details +listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL + +# The number of threads that the server uses for receiving requests from the network and sending responses to the network +num.network.threads=3 + +# The number of threads that the server uses for processing requests, which may include disk I/O +num.io.threads=8 + +# The send buffer (SO_SNDBUF) used by the socket server +socket.send.buffer.bytes=102400 + +# The receive buffer (SO_RCVBUF) used by the socket server +socket.receive.buffer.bytes=102400 + +# The maximum size of a request that the socket server will accept (protection against OOM) +socket.request.max.bytes=104857600 + + +############################# Log Basics ############################# + +# A comma separated list of directories under which to store log files +log.dirs=/tmp/kraft-broker-logs + +# The default number of log partitions per topic. More partitions allow greater +# parallelism for consumption, but this will also result in more files across +# the brokers. +num.partitions=1 + +# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown. +# This value is recommended to be increased for installations with data dirs located in RAID array. +num.recovery.threads.per.data.dir=1 + +############################# Internal Topic Settings ############################# +# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +offsets.topic.replication.factor=1 +transaction.state.log.replication.factor=1 +transaction.state.log.min.isr=1 + +############################# Log Flush Policy ############################# + +# Messages are immediately written to the filesystem but by default we only fsync() to sync +# the OS cache lazily. The following configurations control the flush of data to disk. +# There are a few important trade-offs here: +# 1. Durability: Unflushed data may be lost if you are not using replication. +# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. +# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to excessive seeks. +# The settings below allow one to configure the flush policy to flush data after a period of time or +# every N messages (or both). This can be done globally and overridden on a per-topic basis. + +# The number of messages to accept before forcing a flush of data to disk +#log.flush.interval.messages=10000 + +# The maximum amount of time a message can sit in a log before we force a flush +#log.flush.interval.ms=1000 + +############################# Log Retention Policy ############################# + +# The following configurations control the disposal of log segments. The policy can +# be set to delete segments after a period of time, or after a given size has accumulated. +# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens +# from the end of the log. + +# The minimum age of a log file to be eligible for deletion due to age +log.retention.hours=168 + +# A size-based retention policy for logs. Segments are pruned from the log unless the remaining +# segments drop below log.retention.bytes. Functions independently of log.retention.hours. +#log.retention.bytes=1073741824 + +# The maximum size of a log segment file. When this size is reached a new log segment will be created. +log.segment.bytes=1073741824 + +# The interval at which log segments are checked to see if they can be deleted according +# to the retention policies +log.retention.check.interval.ms=300000 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/controller.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/controller.properties new file mode 100644 index 0000000000000000000000000000000000000000..30fe3e78f3ad8e5c7e65c78e9d35cf5c0b4f7038 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/controller.properties @@ -0,0 +1,127 @@ +# 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. + +# +# This configuration file is intended for use in KRaft mode, where +# Apache ZooKeeper is not present. See config/kraft/README.md for details. +# + +############################# Server Basics ############################# + +# The role of this server. Setting this puts us in KRaft mode +process.roles=controller + +# The node id associated with this instance's roles +node.id=1 + +# The connect string for the controller quorum +controller.quorum.voters=1@localhost:9093 + +############################# Socket Server Settings ############################# + +# The address the socket server listens on. It will get the value returned from +# java.net.InetAddress.getCanonicalHostName() if not configured. +# FORMAT: +# listeners = listener_name://host_name:port +# EXAMPLE: +# listeners = PLAINTEXT://your.host.name:9092 +listeners=PLAINTEXT://:9093 + +# Hostname and port the broker will advertise to producers and consumers. If not set, +# it uses the value for "listeners" if configured. Otherwise, it will use the value +# returned from java.net.InetAddress.getCanonicalHostName(). +#advertised.listeners=PLAINTEXT://your.host.name:9092 + +# Listener, host name, and port for the controller to advertise to the brokers. If +# this server is a controller, this listener must be configured. +controller.listener.names=PLAINTEXT + +# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details +#listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL + +# The number of threads that the server uses for receiving requests from the network and sending responses to the network +num.network.threads=3 + +# The number of threads that the server uses for processing requests, which may include disk I/O +num.io.threads=8 + +# The send buffer (SO_SNDBUF) used by the socket server +socket.send.buffer.bytes=102400 + +# The receive buffer (SO_RCVBUF) used by the socket server +socket.receive.buffer.bytes=102400 + +# The maximum size of a request that the socket server will accept (protection against OOM) +socket.request.max.bytes=104857600 + + +############################# Log Basics ############################# + +# A comma separated list of directories under which to store log files +log.dirs=/tmp/raft-controller-logs + +# The default number of log partitions per topic. More partitions allow greater +# parallelism for consumption, but this will also result in more files across +# the brokers. +num.partitions=1 + +# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown. +# This value is recommended to be increased for installations with data dirs located in RAID array. +num.recovery.threads.per.data.dir=1 + +############################# Internal Topic Settings ############################# +# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +offsets.topic.replication.factor=1 +transaction.state.log.replication.factor=1 +transaction.state.log.min.isr=1 + +############################# Log Flush Policy ############################# + +# Messages are immediately written to the filesystem but by default we only fsync() to sync +# the OS cache lazily. The following configurations control the flush of data to disk. +# There are a few important trade-offs here: +# 1. Durability: Unflushed data may be lost if you are not using replication. +# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. +# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to excessive seeks. +# The settings below allow one to configure the flush policy to flush data after a period of time or +# every N messages (or both). This can be done globally and overridden on a per-topic basis. + +# The number of messages to accept before forcing a flush of data to disk +#log.flush.interval.messages=10000 + +# The maximum amount of time a message can sit in a log before we force a flush +#log.flush.interval.ms=1000 + +############################# Log Retention Policy ############################# + +# The following configurations control the disposal of log segments. The policy can +# be set to delete segments after a period of time, or after a given size has accumulated. +# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens +# from the end of the log. + +# The minimum age of a log file to be eligible for deletion due to age +log.retention.hours=168 + +# A size-based retention policy for logs. Segments are pruned from the log unless the remaining +# segments drop below log.retention.bytes. Functions independently of log.retention.hours. +#log.retention.bytes=1073741824 + +# The maximum size of a log segment file. When this size is reached a new log segment will be created. +log.segment.bytes=1073741824 + +# The interval at which log segments are checked to see if they can be deleted according +# to the retention policies +log.retention.check.interval.ms=300000 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/server.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/server.properties new file mode 100644 index 0000000000000000000000000000000000000000..8e6406c3b43f2e14d2dcc30b828bbd997d8048ef --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/kraft/server.properties @@ -0,0 +1,128 @@ +# 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. + +# +# This configuration file is intended for use in KRaft mode, where +# Apache ZooKeeper is not present. See config/kraft/README.md for details. +# + +############################# Server Basics ############################# + +# The role of this server. Setting this puts us in KRaft mode +process.roles=broker,controller + +# The node id associated with this instance's roles +node.id=1 + +# The connect string for the controller quorum +controller.quorum.voters=1@localhost:9093 + +############################# Socket Server Settings ############################# + +# The address the socket server listens on. It will get the value returned from +# java.net.InetAddress.getCanonicalHostName() if not configured. +# FORMAT: +# listeners = listener_name://host_name:port +# EXAMPLE: +# listeners = PLAINTEXT://your.host.name:9092 +listeners=PLAINTEXT://:9092,CONTROLLER://:9093 +inter.broker.listener.name=PLAINTEXT + +# Hostname and port the broker will advertise to producers and consumers. If not set, +# it uses the value for "listeners" if configured. Otherwise, it will use the value +# returned from java.net.InetAddress.getCanonicalHostName(). +advertised.listeners=PLAINTEXT://localhost:9092 + +# Listener, host name, and port for the controller to advertise to the brokers. If +# this server is a controller, this listener must be configured. +controller.listener.names=CONTROLLER + +# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details +listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL + +# The number of threads that the server uses for receiving requests from the network and sending responses to the network +num.network.threads=3 + +# The number of threads that the server uses for processing requests, which may include disk I/O +num.io.threads=8 + +# The send buffer (SO_SNDBUF) used by the socket server +socket.send.buffer.bytes=102400 + +# The receive buffer (SO_RCVBUF) used by the socket server +socket.receive.buffer.bytes=102400 + +# The maximum size of a request that the socket server will accept (protection against OOM) +socket.request.max.bytes=104857600 + + +############################# Log Basics ############################# + +# A comma separated list of directories under which to store log files +log.dirs=/tmp/kraft-combined-logs + +# The default number of log partitions per topic. More partitions allow greater +# parallelism for consumption, but this will also result in more files across +# the brokers. +num.partitions=1 + +# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown. +# This value is recommended to be increased for installations with data dirs located in RAID array. +num.recovery.threads.per.data.dir=1 + +############################# Internal Topic Settings ############################# +# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +offsets.topic.replication.factor=1 +transaction.state.log.replication.factor=1 +transaction.state.log.min.isr=1 + +############################# Log Flush Policy ############################# + +# Messages are immediately written to the filesystem but by default we only fsync() to sync +# the OS cache lazily. The following configurations control the flush of data to disk. +# There are a few important trade-offs here: +# 1. Durability: Unflushed data may be lost if you are not using replication. +# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. +# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to excessive seeks. +# The settings below allow one to configure the flush policy to flush data after a period of time or +# every N messages (or both). This can be done globally and overridden on a per-topic basis. + +# The number of messages to accept before forcing a flush of data to disk +#log.flush.interval.messages=10000 + +# The maximum amount of time a message can sit in a log before we force a flush +#log.flush.interval.ms=1000 + +############################# Log Retention Policy ############################# + +# The following configurations control the disposal of log segments. The policy can +# be set to delete segments after a period of time, or after a given size has accumulated. +# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens +# from the end of the log. + +# The minimum age of a log file to be eligible for deletion due to age +log.retention.hours=168 + +# A size-based retention policy for logs. Segments are pruned from the log unless the remaining +# segments drop below log.retention.bytes. Functions independently of log.retention.hours. +#log.retention.bytes=1073741824 + +# The maximum size of a log segment file. When this size is reached a new log segment will be created. +log.segment.bytes=1073741824 + +# The interval at which log segments are checked to see if they can be deleted according +# to the retention policies +log.retention.check.interval.ms=300000 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/log4j.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..4cbce9d104291fe0a8c6d6acb7e6fc67dde4ecc5 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/log4j.properties @@ -0,0 +1,91 @@ +# 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. + +# Unspecified loggers and loggers with additivity=true output to server.log and stdout +# Note that INFO only applies to unspecified loggers, the log level of the child logger is used otherwise +log4j.rootLogger=INFO, stdout, kafkaAppender + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log +log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.stateChangeAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.stateChangeAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log +log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.requestAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.requestAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log +log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.cleanerAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.cleanerAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log +log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.controllerAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.controllerAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log +log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.authorizerAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.authorizerAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.authorizerAppender.File=${kafka.logs.dir}/kafka-authorizer.log +log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +# Change the line below to adjust ZK client logging +log4j.logger.org.apache.zookeeper=INFO + +# Change the two lines below to adjust the general broker logging level (output to server.log and stdout) +log4j.logger.kafka=INFO +log4j.logger.org.apache.kafka=INFO + +# Change to DEBUG or TRACE to enable request logging +log4j.logger.kafka.request.logger=WARN, requestAppender +log4j.additivity.kafka.request.logger=false + +# Uncomment the lines below and change log4j.logger.kafka.network.RequestChannel$ to TRACE for additional output +# related to the handling of requests +#log4j.logger.kafka.network.Processor=TRACE, requestAppender +#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender +#log4j.additivity.kafka.server.KafkaApis=false +log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender +log4j.additivity.kafka.network.RequestChannel$=false + +log4j.logger.kafka.controller=TRACE, controllerAppender +log4j.additivity.kafka.controller=false + +log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender +log4j.additivity.kafka.log.LogCleaner=false + +log4j.logger.state.change.logger=INFO, stateChangeAppender +log4j.additivity.state.change.logger=false + +# Access denials are logged at INFO level, change to DEBUG to also log allowed accesses +log4j.logger.kafka.authorizer.logger=INFO, authorizerAppender +log4j.additivity.kafka.authorizer.logger=false + diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/producer.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/producer.properties new file mode 100644 index 0000000000000000000000000000000000000000..4786b988a29b84436280b361a4749aba8d9a02b1 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/producer.properties @@ -0,0 +1,45 @@ +# 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. +# see org.apache.kafka.clients.producer.ProducerConfig for more details + +############################# Producer Basics ############################# + +# list of brokers used for bootstrapping knowledge about the rest of the cluster +# format: host1:port1,host2:port2 ... +bootstrap.servers=localhost:9092 + +# specify the compression codec for all data generated: none, gzip, snappy, lz4, zstd +compression.type=none + +# name of the partitioner class for partitioning events; default partition spreads data randomly +#partitioner.class= + +# the maximum amount of time the client will wait for the response of a request +#request.timeout.ms= + +# how long `KafkaProducer.send` and `KafkaProducer.partitionsFor` will block for +#max.block.ms= + +# the producer will wait for up to the given delay to allow other records to be sent so that the sends can be batched together +#linger.ms= + +# the maximum size of a request in bytes +#max.request.size= + +# the default batch size in bytes when batching multiple records sent to a partition +#batch.size= + +# the total bytes of memory the producer can use to buffer records waiting to be sent to the server +#buffer.memory= diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/server.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/server.properties new file mode 100644 index 0000000000000000000000000000000000000000..b1cf5c454169c2f08d56f4af09ef1726f622728d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/server.properties @@ -0,0 +1,136 @@ +# 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. + +# see kafka.server.KafkaConfig for additional details and defaults + +############################# Server Basics ############################# + +# The id of the broker. This must be set to a unique integer for each broker. +broker.id=0 + +############################# Socket Server Settings ############################# + +# The address the socket server listens on. It will get the value returned from +# java.net.InetAddress.getCanonicalHostName() if not configured. +# FORMAT: +# listeners = listener_name://host_name:port +# EXAMPLE: +# listeners = PLAINTEXT://your.host.name:9092 +#listeners=PLAINTEXT://:9092 + +# Hostname and port the broker will advertise to producers and consumers. If not set, +# it uses the value for "listeners" if configured. Otherwise, it will use the value +# returned from java.net.InetAddress.getCanonicalHostName(). +#advertised.listeners=PLAINTEXT://your.host.name:9092 + +# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details +#listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL + +# The number of threads that the server uses for receiving requests from the network and sending responses to the network +num.network.threads=3 + +# The number of threads that the server uses for processing requests, which may include disk I/O +num.io.threads=8 + +# The send buffer (SO_SNDBUF) used by the socket server +socket.send.buffer.bytes=102400 + +# The receive buffer (SO_RCVBUF) used by the socket server +socket.receive.buffer.bytes=102400 + +# The maximum size of a request that the socket server will accept (protection against OOM) +socket.request.max.bytes=104857600 + + +############################# Log Basics ############################# + +# A comma separated list of directories under which to store log files +log.dirs=/tmp/kafka-logs + +# The default number of log partitions per topic. More partitions allow greater +# parallelism for consumption, but this will also result in more files across +# the brokers. +num.partitions=1 + +# The number of threads per data directory to be used for log recovery at startup and flushing at shutdown. +# This value is recommended to be increased for installations with data dirs located in RAID array. +num.recovery.threads.per.data.dir=1 + +############################# Internal Topic Settings ############################# +# The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" +# For anything other than development testing, a value greater than 1 is recommended to ensure availability such as 3. +offsets.topic.replication.factor=1 +transaction.state.log.replication.factor=1 +transaction.state.log.min.isr=1 + +############################# Log Flush Policy ############################# + +# Messages are immediately written to the filesystem but by default we only fsync() to sync +# the OS cache lazily. The following configurations control the flush of data to disk. +# There are a few important trade-offs here: +# 1. Durability: Unflushed data may be lost if you are not using replication. +# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. +# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to excessive seeks. +# The settings below allow one to configure the flush policy to flush data after a period of time or +# every N messages (or both). This can be done globally and overridden on a per-topic basis. + +# The number of messages to accept before forcing a flush of data to disk +#log.flush.interval.messages=10000 + +# The maximum amount of time a message can sit in a log before we force a flush +#log.flush.interval.ms=1000 + +############################# Log Retention Policy ############################# + +# The following configurations control the disposal of log segments. The policy can +# be set to delete segments after a period of time, or after a given size has accumulated. +# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens +# from the end of the log. + +# The minimum age of a log file to be eligible for deletion due to age +log.retention.hours=168 + +# A size-based retention policy for logs. Segments are pruned from the log unless the remaining +# segments drop below log.retention.bytes. Functions independently of log.retention.hours. +#log.retention.bytes=1073741824 + +# The maximum size of a log segment file. When this size is reached a new log segment will be created. +log.segment.bytes=1073741824 + +# The interval at which log segments are checked to see if they can be deleted according +# to the retention policies +log.retention.check.interval.ms=300000 + +############################# Zookeeper ############################# + +# Zookeeper connection string (see zookeeper docs for details). +# This is a comma separated host:port pairs, each corresponding to a zk +# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". +# You can also append an optional chroot string to the urls to specify the +# root directory for all kafka znodes. +zookeeper.connect=localhost:2181 + +# Timeout in ms for connecting to zookeeper +zookeeper.connection.timeout.ms=18000 + + +############################# Group Coordinator Settings ############################# + +# The following configuration specifies the time, in milliseconds, that the GroupCoordinator will delay the initial consumer rebalance. +# The rebalance will be further delayed by the value of group.initial.rebalance.delay.ms as new members join the group, up to a maximum of max.poll.interval.ms. +# The default value for this is 3 seconds. +# We override this to 0 here as it makes for a better out-of-the-box experience for development and testing. +# However, in production environments the default value of 3 seconds is more suitable as this will help to avoid unnecessary, and potentially expensive, rebalances during application startup. +group.initial.rebalance.delay.ms=0 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/tools-log4j.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/tools-log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..b19e343265fc3601423cfb08535a139639116375 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/tools-log4j.properties @@ -0,0 +1,21 @@ +# 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. + +log4j.rootLogger=WARN, stderr + +log4j.appender.stderr=org.apache.log4j.ConsoleAppender +log4j.appender.stderr.layout=org.apache.log4j.PatternLayout +log4j.appender.stderr.layout.ConversionPattern=[%d] %p %m (%c)%n +log4j.appender.stderr.Target=System.err diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/trogdor.conf b/hackfest/kafka/kafka_2.13-2.8.0/config/trogdor.conf new file mode 100644 index 0000000000000000000000000000000000000000..320cbe7560cd0c45f076de4801826424f9df3882 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/trogdor.conf @@ -0,0 +1,25 @@ +{ + "_comment": [ + "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." + ], + "platform": "org.apache.kafka.trogdor.basic.BasicPlatform", "nodes": { + "node0": { + "hostname": "localhost", + "trogdor.agent.port": 8888, + "trogdor.coordinator.port": 8889 + } + } +} diff --git a/hackfest/kafka/kafka_2.13-2.8.0/config/zookeeper.properties b/hackfest/kafka/kafka_2.13-2.8.0/config/zookeeper.properties new file mode 100644 index 0000000000000000000000000000000000000000..90f4332ec31cf5e6612daa5fb75c4ac0d0093dd8 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/config/zookeeper.properties @@ -0,0 +1,24 @@ +# 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. +# the directory where the snapshot is stored. +dataDir=/tmp/zookeeper +# the port at which the clients will connect +clientPort=2181 +# disable the per-ip limit on the number of connections since this is a non-production config +maxClientCnxns=0 +# Disable the adminserver by default to avoid port conflicts. +# Set the port to something non-conflicting if choosing to enable this +admin.enableServer=false +# admin.serverPort=8080 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/activation-1.1.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/activation-1.1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b703ab283e0cddabf9c1b5e28658f9198c0def4 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/activation-1.1.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/aopalliance-repackaged-2.6.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/aopalliance-repackaged-2.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..35502f09dcaa845e9ad63fa1ea6f5989cf97731a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/aopalliance-repackaged-2.6.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/argparse4j-0.7.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/argparse4j-0.7.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..b1865dd3827eada57d396d4fc1e012ff990c5f3b Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/argparse4j-0.7.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/audience-annotations-0.5.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/audience-annotations-0.5.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..52491a7ea2048e9ab82534472a1c9fff7396d031 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/audience-annotations-0.5.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-cli-1.4.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-cli-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..22deb3089e2f79a983406bd13a75a3e6238afdcf Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-cli-1.4.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-lang3-3.8.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-lang3-3.8.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..2c65ce67d5c2b746e0583e4879c35ed0751b505e Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/commons-lang3-3.8.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-api-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-api-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..7c5ba4316738de9603684b5ee3f81d6ca187f052 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-api-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-basic-auth-extension-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-basic-auth-extension-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..86fcdd7b7f76b7a11df061692bc92c3495712039 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-basic-auth-extension-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-file-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-file-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..ba1b1b19b53fec6727ccad01aaf1df14e54149a0 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-file-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-json-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-json-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..b96a4b00566737cba09a8690ed7c075677ba80ea Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-json-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..9947af91f87c2e13ec32b08094f93319fd850c6f Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-client-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-client-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..4099b02b464300e3da31fb289855a88402726e98 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-mirror-client-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-runtime-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-runtime-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..ce0fb813f99fb33e5f105ec76b59d192843ee0a9 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-runtime-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-transforms-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-transforms-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..b72a124106678af9728fd050fc14ae833e506c6a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/connect-transforms-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-api-2.6.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-api-2.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..03d6eb05921f28d7fdca0f7bf1af7b187cdf1a8b Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-api-2.6.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-locator-2.6.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-locator-2.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..0906bd1bdaca955a54c37a2b70ed393d5aa9fcca Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-locator-2.6.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-utils-2.6.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-utils-2.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..768bc48800fee6da4526f9b8cff0de1773a7bc3f Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/hk2-utils-2.6.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-annotations-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-annotations-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..74a8b1ba76ed2ba3498f38338f96f1615ad6d65d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-annotations-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-core-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-core-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..ed1817300546847acc182edb40b0f068a605d711 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-core-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-databind-2.10.5.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-databind-2.10.5.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..3246c3d3c27860b7ae0579dd7b2474d0a800d7e3 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-databind-2.10.5.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-dataformat-csv-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-dataformat-csv-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..df564d944d0a752a58825dc8e9f094f7a5f13764 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-dataformat-csv-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-datatype-jdk8-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-datatype-jdk8-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..32d020097821a02469a843129cd6c9b055f9fd4b Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-datatype-jdk8-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-base-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-base-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..74d74f53703a8b92803a9d7d0cf4b2c8afdb6cb5 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-base-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-json-provider-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-json-provider-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..9d6dde11b2661743a97b296f34653a5514a33bf1 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-jaxrs-json-provider-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-jaxb-annotations-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-jaxb-annotations-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..ea23eb79435cc855c6b7c97e542caf54ddd6cb05 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-jaxb-annotations-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-paranamer-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-paranamer-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..63efc6ac43de3ed20d3034ec4074f7f8b62911af Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-paranamer-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-scala_2.13-2.10.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-scala_2.13-2.10.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..51326637eff340dbfa724e4f554fd28ec57bdefb Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jackson-module-scala_2.13-2.10.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.activation-api-1.2.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.activation-api-1.2.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..bbfb52ff01e082afd65ee6444f2645e999f98ee0 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.activation-api-1.2.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.annotation-api-1.3.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.annotation-api-1.3.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..606d992eb235afffc3284caf6a2f97939e8a1682 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.annotation-api-1.3.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.inject-2.6.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.inject-2.6.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..cee6acd2a0a81094bb1b6f8b75f2c6913301ba6d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.inject-2.6.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.validation-api-2.0.2.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.validation-api-2.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..d68c9f7f36d2cfda66f0b89e0719b73b034143b5 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.validation-api-2.0.2.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.ws.rs-api-2.1.6.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.ws.rs-api-2.1.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..4850659bb6c9f2872836f4d0d5f4600da774d440 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.ws.rs-api-2.1.6.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.xml.bind-api-2.3.2.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.xml.bind-api-2.3.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..b16236d561c08c177f79a99e2c7a47be1f81616d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jakarta.xml.bind-api-2.3.2.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/javassist-3.27.0-GA.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/javassist-3.27.0-GA.jar new file mode 100644 index 0000000000000000000000000000000000000000..092e59b4d68c3d5832cef4e04324212fd319ab48 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/javassist-3.27.0-GA.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.servlet-api-3.1.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.servlet-api-3.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6b14c3d267867e76c04948bb31b3de18e01412ee Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.servlet-api-3.1.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.ws.rs-api-2.1.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.ws.rs-api-2.1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..3eabbf0874c4a56edf5f47fb9e26c2c125dc23b2 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/javax.ws.rs-api-2.1.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jaxb-api-2.3.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jaxb-api-2.3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..0817c083ad9965d72e18c87dd23b63f8241adc50 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jaxb-api-2.3.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-client-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-client-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..6f4cbe1f0181c85eb4fa1351b55a86ca13a26719 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-client-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-common-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-common-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..22a163898ff67d1bfed6c81feb806e2371ca4b53 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-common-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..5395f6d31d9c070a8b31ff699d56e70dad3db935 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-core-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-core-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..9e0d13fd4cf64859d2c2e106bf1b5c003acfe822 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-container-servlet-core-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-hk2-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-hk2-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..1c8faeaae7a57fa13e8f1bf642c95782f7747345 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-hk2-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-media-jaxb-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-media-jaxb-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..b30472a94abce99d9379cf0f3c08df226a3913f4 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-media-jaxb-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-server-2.31.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-server-2.31.jar new file mode 100644 index 0000000000000000000000000000000000000000..8093610a304e2c1f8c4b0422261368b0c47be8bf Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jersey-server-2.31.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-client-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-client-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..8f3456444abdace3451d6abbf5f849adb38d8159 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-client-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-continuation-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-continuation-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..628c66adb35f67ef4083337f943633ee5a21359d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-continuation-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-http-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-http-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..0e4b3a626f5c445f7f94956e7547cfaf41e42a77 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-http-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-io-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-io-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..410024d7c32c47ec1a910e59f349d463af084fb9 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-io-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-security-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-security-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..959f42617384cd30caf86e2f2528164f9aad2fc7 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-security-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-server-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-server-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..93ef391b9669a8c2e8d720d04af7fe058af699e0 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-server-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlet-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlet-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..87712d80c28bfe61ab993917e2561286c542057d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlet-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlets-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlets-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..6fb55c290838080c1278fbc7fa1149fdbd707f5a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-servlets-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..a55699def34d2aa97981fa41296da44d31a3671d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-ajax-9.4.39.v20210325.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-ajax-9.4.39.v20210325.jar new file mode 100644 index 0000000000000000000000000000000000000000..edfdee3e9bbf4bd19d6bdd46538616ff2c6f4e52 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jetty-util-ajax-9.4.39.v20210325.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jline-3.12.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jline-3.12.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..fcb8d4dd6d1450ee214cce78eff1942a1cc1a9d3 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jline-3.12.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/jopt-simple-5.0.4.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/jopt-simple-5.0.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..317b2b069c413d1b58a471e7d49d85e03e4425d6 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/jopt-simple-5.0.4.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-clients-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-clients-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..375b2f82a46b67cae763c06166757bfa6ebf8ec5 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-clients-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-log4j-appender-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-log4j-appender-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..83ca256013d5076a283dd4ca413e8dc130bde93d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-log4j-appender-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-metadata-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-metadata-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..ab64f115e1d856ebf866029f342d78430272ee62 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-metadata-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-raft-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-raft-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..93b2c24b40312b89f7419f0d49b861085790984c Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-raft-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-shell-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-shell-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..4f1271f7e37292832911395c0c9909030e969d7b Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-shell-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..fc135def8c22b6ad32deba9f3a723444c2a69d22 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-examples-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-examples-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..7bc625021f55234fcdadc5f3b19e27e419ef3bd9 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-examples-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-scala_2.13-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-scala_2.13-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..49b1bd169f5e052d8d7a2f7a1b09ea3df8efcc2f Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-scala_2.13-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-test-utils-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-test-utils-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..50e01359e90596c87a296622276dee3a95b95459 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-streams-test-utils-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-tools-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-tools-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..ef49b423f6db1a79258437f816d49a7621317219 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka-tools-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..31705d79e6163ebc7636b3d610b64c3744b83f6f Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar.asc b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..fb9b148683c4d81ac9a6b09c5fdfea76b9b996e6 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-javadoc.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIcBAABCgAGBQJgdv10AAoJEAFsz8oOL9Vh/HQP/ixN0ulA7WE41KuceF60xJ7+ +kiM3r4pJaJkcUuJRn8Q2U9w5vym0AMlRe7OlbHtRztpsHnUj2fyNvw/lIcWvvHey +G9UWCrjfReq7+Lcb7XsCRJZ1KCnlyKz6r2Jdh5E7nNlH9Fxe1pZv/1M4SZVXeud9 +Rq5byoQsVWGdNinmPvwckFbdmcmyiSGWbUlCVe9MYx+NfxcUisREGDkPdqaOeN+Y +HCEdmY0vpeMgkIpJOEDJHGwrJmp5sWT50Qor5J4FFtBlVPFyEeWVxyL9/025WyZe +wFzAVBmUXYLdhuF1Tq2fmfYTJWasbnu34PHsduq3t0TVAFzOyLDbgoRUnLWRA2Ws +eJgRRn2gKzB40vNpLTk79PjPEe37BKto2HxK/hhZebgl4TlhwR+atn54mfnuL73W ++eCoNikh2Xww1d83Fyv43dUggIr6H+3yipIRqoch4gf5Q40CFArbTDY5QBjWwiTW +2Ee8QuqxK5J21+ThwH+O/3ThcHZPWQvSqKz5AdpgF0JR2/Tzp/or93fthuBAJ+cM +op4IrfCt2uJlUNHzZL5x+WVxwVyhoC7HGJ9tq90aeN1F8d+2wT7gWRVtfASDnbE2 +Se8G3rfJEx2YD2Q0d1oxRR8na0mtfxT3gu4jcxhjlfRaBEBoGZ20nhnaIh2ZT7xN +9FBtpv1yg9q9PW0pordO +=heAh +-----END PGP SIGNATURE----- diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..75d51d1b5c0f5335db597a7cd8720b0122dedb64 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar.asc b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..6abc5e320f316dca38e6c58f66da64fff8cc70e7 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-sources.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIcBAABCgAGBQJgdv10AAoJEAFsz8oOL9VhPeUP/0ZRAJo+0KZ4JycjaR1ea09S +FKXedSNGRMtU/ttwOuTMeICqvPDqxS5OvJD60Kp1yahODUIHvSb30WfjnQEdfM+5 +UiqOYz809NYVbwdLx951dm/c4++aQ+/cnucJLjl6R8Wj0hxOSU/Whb383tl7RBx8 +GVScgAEN+q0qC+jjNi6dm5TKjBxJqFbMcSlc34yk8Wno0d8y1ls1dBvNFmEtIZ1I ++gMUCuRKHrooudis5zPKXLrjCL8VZxqDAuovuRDLbVJDawbMB8sHYXE9phfOvoYi +27SDc7gpQJZ6Xwy2Ns1QaX8DowZgEx4xgZSzO1zHJfTvUoIxIFrg76L9CxbChr+P +eoWY0/UVpIiHRjLwkiVoHSCvgTKohL4kv74fID3xELdvClU4AMNAy9jVVakhLcgq +D/qK4t7+4VlWj/CZOoiN8ZrT/A2l3RcBp6OuXLcLQrEfuL1b2d/SkP9N3VGB3qfV +OUomFztr/CLxR8CNHvMWG2GbbVY/zDVaYPGMtHaorszLV/0+Fpz7+W0WRj4ZwU72 +fxIDKwM/nUrctJZS/D8zXveHtPypDvxsJVIwCGqULhtoYvKBmSaMFtVJ8eq8yO7A +BSbC1/nRGj8aaVItfKPjFoQtjOByzkuqQnG7WgwGIdiwOjOJz0kSkNvRAuRDntUa +j5ACmAY/hiwWEcmEqh7t +=zTA7 +-----END PGP SIGNATURE----- diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..d9bfb261c615da12118f37f3c9a316ea0f7713bc Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar.asc b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..cb147011ea03462b4f3e34e66659d98ae0947d97 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test-sources.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIcBAABCgAGBQJgdv1zAAoJEAFsz8oOL9Vh3gIP/00PY5XCwsUFDR9hYnqdNAbZ +5xQWW5hCpnIWNbpAFPY5qf+oW40IuhsjcoJFKk6PNnAwptekx1I/2avz3PD3F613 +mj4b1fPx1LPFtS7+IUEHdb+KuzS4pIQ6zMyRwbISjmJFyPUsxULsx6nrFix53201 ++EPSlxdrygGIb1nlGzSaBe+4UybdsODo1HagXV6jBIsMntFkW7Y5wZAZh+QFQnOm +wPZPFBiwZ1Ly2R1eTs2uWvPfOhoG7Vgdoc1LWIJfWXnlLqE+eSdn7/TMxQ9KYKkZ +1UjWzLE5YEj6rVj4TnxpqNKq8hMGSX6ZDFEXlu95UJuqSZt+o4Z4PxYXY8SNo3U+ +uYpfftnkL26DVyqQS3BjLILSsnICtsuGLnlVdJJr3NzWQRCFVvsuWKyKRixlruk9 +KUDvZN4aR2FJW5N0Xy3cCS6b5m0WoiH14PiA0rgAq1KYD0QMPgFm/FhZkovTslcG +wfZYHtTULWO3NImkPSfRYUX+2RyEkHhfELfnLmQ8P560ULFW8Ckj3OoBk/Im5Faw +rO//gVonTKOuyh9EiGjHVx+VaihbIjf8GBZ7b9q/yZZqTybAashDpqnFD+vAo+jy +YwvxM6fF2CekJpD0Sk+eOcJNB9Ujwz973bDGuqSYhXG330xa1JbJ1hH73p10fsvR +g6OUBQRbTDCXmODUTcsf +=gek7 +-----END PGP SIGNATURE----- diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar new file mode 100644 index 0000000000000000000000000000000000000000..7a7e9f7d6efffa2728bf404fd51469338a8eb265 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar.asc b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..85b5dfe93c5708432c5229ba8011cc366ee5ce0d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0-test.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIcBAABCgAGBQJgdv1zAAoJEAFsz8oOL9VhGp0QAKRfapWQIdqIRBWZUEzHFlbJ +Z+x0pLGiRJMDyoKj4pDqMyHWaTkW1Oav+XXQXlXHrZVClTiAnwyvYtpVQ42NbDu1 ++EyNuJ20phLVRMRhlMYYNaOVsI309a13RmmRxKWy4L147SZr9v+ay3g+jkjWU/GO +SjnQpT4VrmZjBvbfNYBlP7+yXevoIajpaozau1pIfROzsTdAXDW4pYbDZq7R/htq +fyxrqM2X3pY+WvMm2NpJ+zG3oZtAfSfI4/57PQse9dqWFzxzoGBDW/S9EJdqBWMT +M+6q36N+vYDQ8Y3Wlhe3lZfpsbQ8s2+JbloxO+c5qLyTJpLFnj0lMuc5AqQ4f8pd +B2uVQ3J/dlhj9JL9KA2nL0l1kQ40itUrzSEEsyhkeM/JExpG3GOjUrh0i1fAqaAA +kl04d9cfRNTYnOLL3d1D6M1rcQA9ydBk3MbvAV+3pQLSjKpkGuYDQeH4IcBBKW0F +XvIZEp+xw0eFLoT3DqPYkZJ/ry0r7+JFGJ+zVRU/djs8msspx5nRsEhB+6hvD3sj +SFGwAyJXmi8PMDrJTBqIewNgFC0OXoN4RQVxN0mQKaKVy98gqD2JaRQOjALJvDQQ +kJN2lyZ6OYLfsD8vHm2lYVU3WtRFMugWj/gWs2qJ6ikrDIkLbsFav83pS59gRao/ +vCnwpEMCseMe6XiLH2x5 +=0naQ +-----END PGP SIGNATURE----- diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..158454d4dc57312add0b36eb4d6c85a9496c0078 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar.asc b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..1ea0782e60696919ca50267ac8ff5c3d4d44738d --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/libs/kafka_2.13-2.8.0.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.64 + +iQIcBAABCgAGBQJgdv10AAoJEAFsz8oOL9VhscQP/2Fac2u6DezA+EToziIjIBMh +9gUfnWBBsY//tAaxosYnKp/VX2eRUd2XZ3ChKj1mk1qSosQ8jUOpu8fHgDV45t1T +uWsV1KsTTHu+fgy8zdQ/G4XGQYPdFalc9v8kvHI//ZlHWXcSTvR/B8m4pKyLg/mu +1xQuaLycrEt5dpXIxq+FYG+GnA+lJIrQlq11ZDTWJMSg1qnGVAXLX333HLIIlC5V +YoG7HFCImqX7aHe6sapKGlXYSeMLgO+wnLFXL9cjvxv+2wd+G4DSAz8s05mYiPjf +Bqx2Pp34ah3Oqh8lh4RL9aRqGWAmHrbFQkKQmo4sx8RW1qXp6qaMwSASPAcJQC5e +8gpwGwwo781l1HeKZO633ASrQs9RbQ4rgs4BciT+fhCu63ytjN1vRLz7vLbh9D5t +ZkXsJw33BU6h639sFPKu8eMyYe6ArqQ/5QsLMA+kE88b0wH5qCi57zf40iQQ+HAc +uULfefE+PnEIJrALvOcY9QDJVGxyvS6SOINZ0Fl6sLnfkxLMG/CV5B0UVWWWntNA +ei9F8b7utP8PzSxTnxCr3yWGnE2qVz2hrJeYkXdadZS3Tq6Qt2lVMZ+n0hf1szVn +0DmY27c/cADLIeviJHQzmB2ifVRCZP5dBGn1WqUWSg8oZfh5z+nYktuvdbZIROOQ +DvZIiIsAYS7eJHuJBYQs +=oHk2 +-----END PGP SIGNATURE----- diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/log4j-1.2.17.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/log4j-1.2.17.jar new file mode 100644 index 0000000000000000000000000000000000000000..1d425cf7d7e25f81be64d32c406ff66cfb6c4766 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/log4j-1.2.17.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/lz4-java-1.7.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/lz4-java-1.7.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..95f57ca102eb37f7f1a911aa7d45f0ba58c60c9c Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/lz4-java-1.7.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/maven-artifact-3.6.3.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/maven-artifact-3.6.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..42c81115aa98ff96892a048b0ca93533b5bbfef6 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/maven-artifact-3.6.3.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/metrics-core-2.2.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/metrics-core-2.2.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..0f6d1cb0ecbd37f673bc87e109cacc535e23350a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/metrics-core-2.2.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-buffer-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-buffer-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..2f021341cc3c8318c058cb1343ec8d5b8f53e4fb Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-buffer-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-codec-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-codec-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..d637c6b933624a3d8fbf1259d86ad082a0ba580f Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-codec-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-common-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-common-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..b9c80a8efc70065d3f12462d45ea25acef260cc2 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-common-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-handler-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-handler-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..c28e942be8ef401f64434e5407cbbe36ac9eb0a1 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-handler-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-resolver-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-resolver-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..45e3662a7299a6e27128fc102c4a51346824c09e Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-resolver-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..e277f71afc865c510847223b534d25933331c03d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-epoll-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-epoll-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d1ea389e28b4108b077c4a95adcec87b8eef411 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-epoll-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-unix-common-4.1.62.Final.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-unix-common-4.1.62.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..66e66cc1c58d302046c31c0637f4b5c0c930c83a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/netty-transport-native-unix-common-4.1.62.Final.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/osgi-resource-locator-1.0.3.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/osgi-resource-locator-1.0.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..0f3c38653fb6182b0833f554340dd0c7ca7c4093 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/osgi-resource-locator-1.0.3.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/paranamer-2.8.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/paranamer-2.8.jar new file mode 100644 index 0000000000000000000000000000000000000000..0bf659b93e74bb53003bc521f59c855d0ab8e692 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/paranamer-2.8.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/plexus-utils-3.2.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/plexus-utils-3.2.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..d749dd7256acf0748f47ffcb88df78f9e113a7e4 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/plexus-utils-3.2.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/reflections-0.9.12.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/reflections-0.9.12.jar new file mode 100644 index 0000000000000000000000000000000000000000..0f176b914126b6893fa8ae34ce21b2d710f60cae Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/reflections-0.9.12.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/rocksdbjni-5.18.4.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/rocksdbjni-5.18.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..86ddb6e01d843af1956f1fbc4d070d056cc00a8c Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/rocksdbjni-5.18.4.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-collection-compat_2.13-2.3.0.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-collection-compat_2.13-2.3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..cf5a1ea639da93205480fd3cb02a9ef537b9629d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-collection-compat_2.13-2.3.0.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-java8-compat_2.13-0.9.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-java8-compat_2.13-0.9.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..506333953adecdf8929446e1b69a32f1fa606230 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-java8-compat_2.13-0.9.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-library-2.13.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-library-2.13.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..1eb317d14db71a69da63d378882e093937b31b8d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-library-2.13.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-logging_2.13-3.9.2.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-logging_2.13-3.9.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..1e4465168d033a52bec61ac3fdd5f430a61ecb6a Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-logging_2.13-3.9.2.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-reflect-2.13.5.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-reflect-2.13.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..ebd9e242e32320d733eb07ee6043f54f8f8b39e1 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/scala-reflect-2.13.5.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-api-1.7.30.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-api-1.7.30.jar new file mode 100644 index 0000000000000000000000000000000000000000..29ac26fb8cad7ef5934377a8c269c4e521520e5c Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-api-1.7.30.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-log4j12-1.7.30.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-log4j12-1.7.30.jar new file mode 100644 index 0000000000000000000000000000000000000000..c6bc8b2efe5f92db94964defab9a80818758d613 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/slf4j-log4j12-1.7.30.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/snappy-java-1.1.8.1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/snappy-java-1.1.8.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..896967f9bd87c47505c0bf7b22512e675acd8510 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/snappy-java-1.1.8.1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-3.5.9.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-3.5.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..f5eceaab89c99f8ebff3aeaf82dfc9355e7bb80e Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-3.5.9.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-jute-3.5.9.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-jute-3.5.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..3c9c184a068aa5efdf64ba7767acd543653463d6 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/zookeeper-jute-3.5.9.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/libs/zstd-jni-1.4.9-1.jar b/hackfest/kafka/kafka_2.13-2.8.0/libs/zstd-jni-1.4.9-1.jar new file mode 100644 index 0000000000000000000000000000000000000000..5e88a7b99f71cf7ebe742c611187c99f5b41746d Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/libs/zstd-jni-1.4.9-1.jar differ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/CDDL+GPL-1.1 b/hackfest/kafka/kafka_2.13-2.8.0/licenses/CDDL+GPL-1.1 new file mode 100644 index 0000000000000000000000000000000000000000..4b156e6e78b43d59b07391bda0e39b62ca2f4e29 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/CDDL+GPL-1.1 @@ -0,0 +1,760 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 + +1. Definitions. + + 1.1. "Contributor" means each individual or entity that creates or + contributes to the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Software, prior Modifications used by a Contributor (if any), and + the Modifications made by that particular Contributor. + + 1.3. "Covered Software" means (a) the Original Software, or (b) + Modifications, or (c) the combination of files containing Original + Software with files containing Modifications, in each case including + portions thereof. + + 1.4. "Executable" means the Covered Software in any form other than + Source Code. + + 1.5. "Initial Developer" means the individual or entity that first + makes Original Software available under this License. + + 1.6. "Larger Work" means a work which combines Covered Software or + portions thereof with code not governed by the terms of this License. + + 1.7. "License" means this document. + + 1.8. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means the Source Code and Executable form of + any of the following: + + A. Any file that results from an addition to, deletion from or + modification of the contents of a file containing Original Software + or previous Modifications; + + B. Any new file that contains any part of the Original Software or + previous Modification; or + + C. Any new file that is contributed or otherwise made available + under the terms of this License. + + 1.10. "Original Software" means the Source Code and Executable form + of computer software code that is originally released under this + License. + + 1.11. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.12. "Source Code" means (a) the common form of computer software + code in which modifications are made and (b) associated + documentation included in or with such code. + + 1.13. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, the Initial Developer + hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer, to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Software (or portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of + Original Software, to make, have made, use, practice, sell, and + offer for sale, and/or otherwise dispose of the Original Software + (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on + the date Initial Developer first distributes or otherwise makes the + Original Software available to a third party under the terms of this + License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: (1) for code that You delete from the Original Software, or + (2) for infringements caused by: (i) the modification of the + Original Software, or (ii) the combination of the Original Software + with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, each Contributor hereby + grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as Covered Software + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling + of Modifications made by that Contributor either alone and/or in + combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or + otherwise dispose of: (1) Modifications made by that Contributor (or + portions thereof); and (2) the combination of Modifications made by + that Contributor with its Contributor Version (or portions of such + combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective + on the date Contributor first distributes or otherwise makes the + Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: (1) for any code that Contributor has deleted from the + Contributor Version; (2) for infringements caused by: (i) third + party modifications of Contributor Version, or (ii) the combination + of Modifications made by that Contributor with other software + (except as part of the Contributor Version) or other devices; or (3) + under Patent Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available + in Executable form must also be made available in Source Code form + and that Source Code form must be distributed only under the terms + of this License. You must include a copy of this License with every + copy of the Source Code form of the Covered Software You distribute + or otherwise make available. You must inform recipients of any such + Covered Software in Executable form as to how they can obtain such + Covered Software in Source Code form in a reasonable manner on or + through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are + governed by the terms of this License. You represent that You + believe Your Modifications are Your original creation(s) and/or You + have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that + identifies You as the Contributor of the Modification. You may not + remove or alter any copyright, patent or trademark notices contained + within the Covered Software, or any notices of licensing or any + descriptive text giving attribution to any Contributor or the + Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in + Source Code form that alters or restricts the applicable version of + this License or the recipients' rights hereunder. You may choose to + offer, and to charge a fee for, warranty, support, indemnity or + liability obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on behalf of + the Initial Developer or any Contributor. You must make it + absolutely clear that any such warranty, support, indemnity or + liability obligation is offered by You alone, and You hereby agree + to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as a + result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under + the terms of this License or under the terms of a license of Your + choice, which may contain terms different from this License, + provided that You are in compliance with the terms of this License + and that the license for the Executable form does not attempt to + limit or alter the recipient's rights in the Source Code form from + the rights set forth in this License. If You distribute the Covered + Software in Executable form under a different license, You must make + it absolutely clear that any terms which differ from this License + are offered by You alone, not by the Initial Developer or + Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with + other code not governed by the terms of this License and distribute + the Larger Work as a single product. In such a case, You must make + sure the requirements of this License are fulfilled for the Covered + Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or + new versions of this License from time to time. Each version will be + given a distinguishing version number. Except as provided in Section + 4.3, no one other than the license steward has the right to modify + this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the + Covered Software available under the terms of the version of the + License under which You originally received the Covered Software. If + the Initial Developer includes a notice in the Original Software + prohibiting it from being distributed or otherwise made available + under any subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the version + of the License under which You originally received the Covered + Software. Otherwise, You may also choose to use, distribute or + otherwise make the Covered Software available under the terms of any + subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new + license for Your Original Software, You may create and use a + modified version of this License if You: (a) rename the license and + remove any references to the name of the license steward (except to + note that the license differs from this License); and (b) otherwise + make it clear that the license contains terms which differ from this + License. + +5. DISCLAIMER OF WARRANTY. + + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF + THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond the + termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or a + Contributor (the Initial Developer or Contributor against whom You + assert such claim is referred to as "Participant") alleging that the + Participant Software (meaning the Contributor Version where the + Participant is a Contributor or the Original Software where the + Participant is the Initial Developer) directly or indirectly + infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if the + Initial Developer is not the Participant) and all Contributors under + Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice + from Participant terminate prospectively and automatically at the + expiration of such 60 day notice period, unless if within such 60 + day period You withdraw Your claim with respect to the Participant + Software against such Participant either unilaterally or pursuant to + a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant + alleging that the Participant Software directly or indirectly + infringes any patent where such claim is resolved (such as by + license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, + all end user licenses that have been validly granted by You or any + distributor hereunder prior to termination (excluding licenses + granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE + TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT + APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH + PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH + LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION + AND LIMITATION MAY NOT APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + + The Covered Software is a "commercial item," as that term is defined + in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" (as that term is defined at 48 C.F.R. § + 252.227-7014(a)(1)) and "commercial computer software documentation" + as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent + with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 + (June 1995), all U.S. Government End Users acquire Covered Software + with only those rights set forth herein. This U.S. Government Rights + clause is in lieu of, and supersedes, any other FAR, DFAR, or other + clause or provision that addresses Government rights in computer + software under this License. + +9. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, + provides otherwise), excluding such jurisdiction's conflict-of-law + provisions. Any litigation relating to this License shall be subject + to the jurisdiction of the courts located in the jurisdiction and + venue specified in a notice contained within the Original Software, + with the losing party responsible for costs, including, without + limitation, court costs and reasonable attorneys' fees and expenses. + The application of the United Nations Convention on Contracts for + the International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. You + agree that You alone are responsible for compliance with the United + States export administration regulations (and the export control + laws and regulation of any other countries) when You use, distribute + or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +------------------------------------------------------------------------ + +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION +LICENSE (CDDL) + +The code released under the CDDL shall be governed by the laws of the +State of California (excluding conflict-of-law provisions). Any +litigation relating to this License shall be subject to the jurisdiction +of the Federal Courts of the Northern District of California and the +state courts of the State of California, with venue lying in Santa Clara +County, California. + + + + The GNU General Public License (GPL) Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor +Boston, MA 02110-1335 +USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free software--to +make sure the software is free for all its users. This General Public +License applies to most of the Free Software Foundation's software and +to any other program whose authors commit to using it. (Some other Free +Software Foundation software is covered by the GNU Library General +Public License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. +Our General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for this +service if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone +to deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis +or for a fee, you must give the recipients all the rights that you have. +You must make sure that they, too, receive or can get the source code. +And you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software patents. +We wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must +be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a +notice placed by the copyright holder saying it may be distributed under +the terms of this General Public License. The "Program", below, refers +to any such program or work, and a "work based on the Program" means +either the Program or any derivative work under copyright law: that is +to say, a work containing the Program or a portion of it, either +verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +"modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of running +the Program is not restricted, and the output from the Program is +covered only if its contents constitute a work based on the Program +(independent of having been made by running the Program). Whether that +is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously +and appropriately publish on each copy an appropriate copyright notice +and disclaimer of warranty; keep intact all the notices that refer to +this License and to the absence of any warranty; and give any other +recipients of the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of +it, thus forming a work based on the Program, and copy and distribute +such modifications or work under the terms of Section 1 above, provided +that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any part + thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this License. + (Exception: if the Program itself is interactive but does not + normally print such an announcement, your work based on the Program + is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, and +can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on +the Program, the distribution of the whole must be on the terms of this +License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of a +storage or distribution medium does not bring the other work under the +scope of this License. + +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your cost + of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed + only for noncommercial distribution and only if you received the + program in object code or executable form with such an offer, in + accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source code +means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to control +compilation and installation of the executable. However, as a special +exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies the +executable. + +If distribution of executable or object code is made by offering access +to copy from a designated place, then offering equivalent access to copy +the source code from the same place counts as distribution of the source +code, even though third parties are not compelled to copy the source +along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt otherwise +to copy, modify, sublicense or distribute the Program is void, and will +automatically terminate your rights under this License. However, parties +who have received copies, or rights, from you under this License will +not have their licenses terminated so long as such parties remain in +full compliance. + +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and all +its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further restrictions +on the recipients' exercise of the rights granted herein. You are not +responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot distribute +so as to satisfy simultaneously your obligations under this License and +any other pertinent obligations, then as a consequence you may not +distribute the Program at all. For example, if a patent license would +not permit royalty-free redistribution of the Program by all those who +receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is implemented +by public license practices. Many people have made generous +contributions to the wide range of software distributed through that +system in reliance on consistent application of that system; it is up to +the author/donor to decide if he or she is willing to distribute +software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be +a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License may +add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among countries +not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new +versions of the General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Program does not specify a version +number of this License, you may choose any version ever published by the +Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the +author to ask for permission. For software which is copyrighted by the +Free Software Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be guided by the +two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH +YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively convey +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type + `show w'. This is free software, and you are welcome to redistribute + it under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the +appropriate parts of the General Public License. Of course, the commands +you use may be called something other than `show w' and `show c'; they +could even be mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (which makes passes at compilers) written by + James Hacker. + + signature of Ty Coon, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications +with the library. If this is what you want to do, use the GNU Library +General Public License instead of this License. + +# + +Certain source files distributed by Oracle America, Inc. and/or its +affiliates are subject to the following clarification and special +exception to the GPLv2, based on the GNU Project exception for its +Classpath libraries, known as the GNU Classpath Exception, but only +where Oracle has expressly included in the particular source file's +header the words "Oracle designates this particular file as subject to +the "Classpath" exception as provided by Oracle in the LICENSE file +that accompanied this code." + +You should also note that Oracle includes multiple, independent +programs in this software package. Some of those programs are provided +under licenses deemed incompatible with the GPLv2 by the Free Software +Foundation and others. For example, the package includes programs +licensed under the Apache License, Version 2.0. Such programs are +licensed to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding +the Classpath Exception to the necessary parts of its GPLv2 code, which +permits you to use that code in combination with other independent +modules not licensed under the GPLv2. However, note that this would +not permit you to commingle code under an incompatible license with +Oracle's GPLv2 licensed code by, for example, cutting and pasting such +code into a file also containing Oracle's GPLv2 licensed code and then +distributing the result. Additionally, if you were to remove the +Classpath Exception from any of the files to which it applies and +distribute the result, you would likely be required to license some or +all of the other code in that distribution under the GPLv2 as well, and +since the GPLv2 is incompatible with the license terms of some items +included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to +further distribute the package. + +Proceed with caution and we recommend that you obtain the advice of a +lawyer skilled in open source matters before removing the Classpath +Exception or making modifications to this package which may +subsequently be redistributed and/or involve the use of third party +software. + +CLASSPATH EXCEPTION +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License version 2 cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from or +based on this library. If you modify this library, you may extend this +exception to your version of the library, but you are not obligated to +do so. If you do not wish to do so, delete this exception statement +from your version. + diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/DWTFYWTPL b/hackfest/kafka/kafka_2.13-2.8.0/licenses/DWTFYWTPL new file mode 100644 index 0000000000000000000000000000000000000000..5a8e332545f667aab9bf3a17f11dba27c70b656a --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/DWTFYWTPL @@ -0,0 +1,14 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/argparse-MIT b/hackfest/kafka/kafka_2.13-2.8.0/licenses/argparse-MIT new file mode 100644 index 0000000000000000000000000000000000000000..773b0df0e35919182940e77905607e6219243028 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/argparse-MIT @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2011-2017 Tatsuhiro Tsujikawa + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-distribution-license-1.0 b/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-distribution-license-1.0 new file mode 100644 index 0000000000000000000000000000000000000000..5f06513abf5fedd6b0d480ab36a2f941ba1b4545 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-distribution-license-1.0 @@ -0,0 +1,13 @@ +Eclipse Distribution License - v 1.0 + +Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the name of the Eclipse Foundation, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-public-license-2.0 b/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-public-license-2.0 new file mode 100644 index 0000000000000000000000000000000000000000..c9f1425f82d02665b3ecd4d24b84e86437e7ea8a --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/eclipse-public-license-2.0 @@ -0,0 +1,87 @@ +Eclipse Public License - v 2.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. +1. DEFINITIONS + +“Contribution” means: + + a) in the case of the initial Contributor, the initial content Distributed under this Agreement, and + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from and are Distributed by that particular Contributor. A Contribution “originates” from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include changes or additions to the Program that are not Modified Works. + +“Contributor” means any person or entity that Distributes the Program. + +“Licensed Patents” mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +“Program” means the Contributions Distributed in accordance with this Agreement. + +“Recipient” means anyone who receives the Program under this Agreement or any Secondary License (as applicable), including Contributors. + +“Derivative Works” shall mean any work, whether in Source Code or other form, that is based on (or derived from) the Program and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. + +“Modified Works” shall mean any work in Source Code or other form that results from an addition to, deletion from, or modification of the contents of the Program, including, for purposes of clarity any new file in Source Code form that contains any contents of the Program. Modified Works shall not include works that contain only declarations, interfaces, types, classes, structures, or files of the Program solely in each case in order to link to, bind by name, or subclass the Program or Modified Works thereof. + +“Distribute” means the acts of a) distributing or b) making available in any manner that enables the transfer of a copy. + +“Source Code” means the form of a Program preferred for making modifications, including but not limited to software source code, documentation source, and configuration files. + +“Secondary License” means either the GNU General Public License, Version 2.0, or any later versions of that license, including any exceptions or additional permissions as identified by the initial Contributor. +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, Distribute and sublicense the Contribution of such Contributor, if any, and such Derivative Works. + b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in Source Code or other form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to Distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. + d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. + e) Notwithstanding the terms of any Secondary License, no Contributor makes additional grants to any Recipient (other than those set forth in this Agreement) as a result of such Recipient's receipt of the Program under the terms of a Secondary License (if permitted under the terms of Section 3). + +3. REQUIREMENTS + +3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in accordance with section 3.2, and the Contributor must accompany the Program with a statement that the Source Code for the Program is available under this Agreement, and informs Recipients how to obtain it in a reasonable manner on or through a medium customarily used for software exchange; and + b) the Contributor may Distribute the Program under a license different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; + ii) effectively excludes on behalf of all other Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; + iii) does not attempt to limit or alter the recipients' rights in the Source Code under section 3.2; and + iv) requires any subsequent distribution of the Program by any party to be under a license that satisfies the requirements of this section 3. + +3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the Program (i) is combined with other material in a separate file or files made available under a Secondary License, and (ii) the initial Contributor attached to the Source Code the notice described in Exhibit A of this Agreement, then the Program may be made available under the terms of such Secondary Licenses, and + b) a copy of this Agreement must be included with each copy of the Program. + +3.3 Contributors may not remove or alter any copyright, patent, trademark, attribution notices, disclaimers of warranty, or limitations of liability (‘notices’) contained within the Program from any copy of the Program which they Distribute, provided that Contributors may add their own appropriate notices. +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor (“Commercial Contributor”) hereby agrees to defend and indemnify every other Contributor (“Indemnified Contributor”) against any losses, damages and costs (collectively “Losses”) arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be Distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to Distribute the Program (including its Contributions) under the new version. + +Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. Nothing in this Agreement is intended to be enforceable by any entity that is not a Contributor or Recipient. No third-party beneficiary rights are created under this Agreement. +Exhibit A – Form of Secondary Licenses Notice + +“This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), version(s), and exceptions or additional permissions here}.” + + Simply including a copy of this Agreement, including this Exhibit A is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. + + You may add additional accurate notices of copyright ownership. + diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/jopt-simple-MIT b/hackfest/kafka/kafka_2.13-2.8.0/licenses/jopt-simple-MIT new file mode 100644 index 0000000000000000000000000000000000000000..54b27325bb6b2b92043e23932329dc2ef107e291 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/jopt-simple-MIT @@ -0,0 +1,24 @@ +/* + The MIT License + + Copyright (c) 2004-2016 Paul R. Holser, Jr. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/paranamer-BSD-3-clause b/hackfest/kafka/kafka_2.13-2.8.0/licenses/paranamer-BSD-3-clause new file mode 100644 index 0000000000000000000000000000000000000000..9eab87918636a2933a9e780689d08839f515c898 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/paranamer-BSD-3-clause @@ -0,0 +1,29 @@ +[ ParaNamer used to be 'Pubic Domain', but since it includes a small piece of ASM it is now the same license as that: BSD ] + + Portions copyright (c) 2006-2018 Paul Hammant & ThoughtWorks Inc + Portions copyright (c) 2000-2007 INRIA, France Telecom + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/slf4j-MIT b/hackfest/kafka/kafka_2.13-2.8.0/licenses/slf4j-MIT new file mode 100644 index 0000000000000000000000000000000000000000..315bd4979f1558116a47bf33cea913c2b60c39f3 --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/slf4j-MIT @@ -0,0 +1,24 @@ +Copyright (c) 2004-2017 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + diff --git a/hackfest/kafka/kafka_2.13-2.8.0/licenses/zstd-jni-BSD-2-clause b/hackfest/kafka/kafka_2.13-2.8.0/licenses/zstd-jni-BSD-2-clause new file mode 100644 index 0000000000000000000000000000000000000000..66abb8ae782c862428611d37f6c646cf9cc50fca --- /dev/null +++ b/hackfest/kafka/kafka_2.13-2.8.0/licenses/zstd-jni-BSD-2-clause @@ -0,0 +1,26 @@ +Zstd-jni: JNI bindings to Zstd Library + +Copyright (c) 2015-present, Luben Karavelov/ All rights reserved. + +BSD License + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/hackfest/kafka/kafka_2.13-2.8.0/logs/.gitkeep b/hackfest/kafka/kafka_2.13-2.8.0/logs/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/kafka/kafka_2.13-2.8.0/site-docs/kafka_2.13-2.8.0-site-docs.tgz b/hackfest/kafka/kafka_2.13-2.8.0/site-docs/kafka_2.13-2.8.0-site-docs.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d17c747bb0dad60e3815b7073d8b6a0c3c0cdc6 Binary files /dev/null and b/hackfest/kafka/kafka_2.13-2.8.0/site-docs/kafka_2.13-2.8.0-site-docs.tgz differ diff --git a/hackfest/kafka/pub.py b/hackfest/kafka/pub.py new file mode 100644 index 0000000000000000000000000000000000000000..12d3dc2ddef1a9da4396893b72d99d6afc322076 --- /dev/null +++ b/hackfest/kafka/pub.py @@ -0,0 +1,12 @@ +from time import sleep +from json import dumps +from kafka import KafkaProducer + +producer = KafkaProducer(bootstrap_servers=['localhost:9092'], + value_serializer=lambda x: + dumps(x).encode('utf-8')) + +for e in range(10): + data = {'number' : e} + producer.send('my-topic', value=data) + sleep(5) diff --git a/hackfest/kafka/sub.py b/hackfest/kafka/sub.py new file mode 100644 index 0000000000000000000000000000000000000000..f61ab4d47c157f957f670380a5bea2d2684940f8 --- /dev/null +++ b/hackfest/kafka/sub.py @@ -0,0 +1,16 @@ +from kafka import KafkaConsumer +from json import loads + +consumer = KafkaConsumer( + 'my-topic', + bootstrap_servers=['localhost:9092'], + auto_offset_reset='earliest', + enable_auto_commit=True, + group_id='my-group', + value_deserializer=lambda x: loads(x.decode('utf-8'))) + + +for message in consumer: + message = message.value + print('{} received'.format(message)) + diff --git a/hackfest/mock_osm/MockOSM.py b/hackfest/mock_osm/MockOSM.py new file mode 100644 index 0000000000000000000000000000000000000000..b4e629d5845fd7115fa0fa2c0887eca1c7c816c4 --- /dev/null +++ b/hackfest/mock_osm/MockOSM.py @@ -0,0 +1,62 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +import logging +from .WimconnectorIETFL2VPN import WimconnectorIETFL2VPN + +LOGGER = logging.getLogger(__name__) + +class MockOSM: + def __init__(self, url, mapping, username, password): + wim = {'wim_url': url} + wim_account = {'user': username, 'password': password} + config = {'mapping_not_needed': False, 'service_endpoint_mapping': mapping} + self.wim = WimconnectorIETFL2VPN(wim, wim_account, config=config) + self.conn_info = {} # internal database emulating OSM storage provided to WIM Connectors + + def create_connectivity_service(self, service_type, connection_points): + LOGGER.info('[create_connectivity_service] service_type={:s}'.format(str(service_type))) + LOGGER.info('[create_connectivity_service] connection_points={:s}'.format(str(connection_points))) + self.wim.check_credentials() + result = self.wim.create_connectivity_service(service_type, connection_points) + LOGGER.info('[create_connectivity_service] result={:s}'.format(str(result))) + service_uuid, conn_info = result + self.conn_info[service_uuid] = conn_info + return service_uuid + + def get_connectivity_service_status(self, service_uuid): + LOGGER.info('[get_connectivity_service] service_uuid={:s}'.format(str(service_uuid))) + conn_info = self.conn_info.get(service_uuid) + if conn_info is None: raise Exception('ServiceId({:s}) not found'.format(str(service_uuid))) + LOGGER.info('[get_connectivity_service] conn_info={:s}'.format(str(conn_info))) + self.wim.check_credentials() + result = self.wim.get_connectivity_service_status(service_uuid, conn_info=conn_info) + LOGGER.info('[get_connectivity_service] result={:s}'.format(str(result))) + return result + + def edit_connectivity_service(self, service_uuid, connection_points): + LOGGER.info('[edit_connectivity_service] service_uuid={:s}'.format(str(service_uuid))) + LOGGER.info('[edit_connectivity_service] connection_points={:s}'.format(str(connection_points))) + conn_info = self.conn_info.get(service_uuid) + if conn_info is None: raise Exception('ServiceId({:s}) not found'.format(str(service_uuid))) + LOGGER.info('[edit_connectivity_service] conn_info={:s}'.format(str(conn_info))) + self.wim.edit_connectivity_service(service_uuid, conn_info=conn_info, connection_points=connection_points) + + def delete_connectivity_service(self, service_uuid): + LOGGER.info('[delete_connectivity_service] service_uuid={:s}'.format(str(service_uuid))) + conn_info = self.conn_info.get(service_uuid) + if conn_info is None: raise Exception('ServiceId({:s}) not found'.format(str(service_uuid))) + LOGGER.info('[delete_connectivity_service] conn_info={:s}'.format(str(conn_info))) + self.wim.check_credentials() + self.wim.delete_connectivity_service(service_uuid, conn_info=conn_info) diff --git a/hackfest/mock_osm/WimconnectorIETFL2VPN.py b/hackfest/mock_osm/WimconnectorIETFL2VPN.py new file mode 100644 index 0000000000000000000000000000000000000000..e1273b4e483a06df23d94bdf107005ce7585fb5e --- /dev/null +++ b/hackfest/mock_osm/WimconnectorIETFL2VPN.py @@ -0,0 +1,543 @@ +# -*- coding: utf-8 -*- +## +# Copyright 2018 Telefonica +# All Rights Reserved. +# +# Contributors: Oscar Gonzalez de Dios, Manuel Lopez Bravo, Guillermo Pajares Martin +# Licensed 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. +# +# This work has been performed in the context of the Metro-Haul project - +# funded by the European Commission under Grant number 761727 through the +# Horizon 2020 program. +## +"""The SDN/WIM connector is responsible for establishing wide area network +connectivity. + +This SDN/WIM connector implements the standard IETF RFC 8466 "A YANG Data + Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery" + +It receives the endpoints and the necessary details to request +the Layer 2 service. +""" +import requests +import uuid +import logging +import copy +#from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError +from .sdnconn import SdnConnectorBase, SdnConnectorError + +"""Check layer where we move it""" + + +class WimconnectorIETFL2VPN(SdnConnectorBase): + def __init__(self, wim, wim_account, config=None, logger=None): + """IETF L2VPN WIM connector + + Arguments: (To be completed) + wim (dict): WIM record, as stored in the database + wim_account (dict): WIM account record, as stored in the database + """ + self.logger = logging.getLogger("ro.sdn.ietfl2vpn") + super().__init__(wim, wim_account, config, logger) + self.headers = {"Content-Type": "application/json"} + self.mappings = { + m["service_endpoint_id"]: m for m in self.service_endpoint_mapping + } + self.user = wim_account.get("user") + self.passwd = wim_account.get("password") # replace "passwordd" -> "password" + + if self.user and self.passwd is not None: + self.auth = (self.user, self.passwd) + else: + self.auth = None + + self.logger.info("IETFL2VPN Connector Initialized.") + + def check_credentials(self): + endpoint = "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services".format( + self.wim["wim_url"] + ) + + try: + response = requests.get(endpoint, auth=self.auth) + http_code = response.status_code + except requests.exceptions.RequestException as e: + raise SdnConnectorError(e.message, http_code=503) + + if http_code != 200: + raise SdnConnectorError("Failed while authenticating", http_code=http_code) + + self.logger.info("Credentials checked") + + def get_connectivity_service_status(self, service_uuid, conn_info=None): + """Monitor the status of the connectivity service stablished + + Arguments: + service_uuid: Connectivity service unique identifier + + Returns: + Examples:: + {'sdn_status': 'ACTIVE'} + {'sdn_status': 'INACTIVE'} + {'sdn_status': 'DOWN'} + {'sdn_status': 'ERROR'} + """ + try: + self.logger.info("Sending get connectivity service stuatus") + servicepoint = "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services/vpn-service={}/".format( + self.wim["wim_url"], service_uuid + ) + response = requests.get(servicepoint, auth=self.auth) + self.logger.warning('response.status_code={:s}'.format(str(response.status_code))) + if response.status_code != requests.codes.ok: + raise SdnConnectorError( + "Unable to obtain connectivity servcice status", + http_code=response.status_code, + ) + + service_status = {"sdn_status": "ACTIVE"} + + return service_status + except requests.exceptions.ConnectionError: + raise SdnConnectorError("Request Timeout", http_code=408) + + def search_mapp(self, connection_point): + id = connection_point["service_endpoint_id"] + if id not in self.mappings: + raise SdnConnectorError("Endpoint {} not located".format(str(id))) + else: + return self.mappings[id] + + def create_connectivity_service(self, service_type, connection_points, **kwargs): + """Stablish WAN connectivity between the endpoints + + Arguments: + service_type (str): ``ELINE`` (L2), ``ELAN`` (L2), ``ETREE`` (L2), + ``L3``. + connection_points (list): each point corresponds to + an entry point from the DC to the transport network. One + connection point serves to identify the specific access and + some other service parameters, such as encapsulation type. + Represented by a dict as follows:: + + { + "service_endpoint_id": ..., (str[uuid]) + "service_endpoint_encapsulation_type": ..., + (enum: none, dot1q, ...) + "service_endpoint_encapsulation_info": { + ... (dict) + "vlan": ..., (int, present if encapsulation is dot1q) + "vni": ... (int, present if encapsulation is vxlan), + "peers": [(ipv4_1), (ipv4_2)] + (present if encapsulation is vxlan) + } + } + + The service endpoint ID should be previously informed to the WIM + engine in the RO when the WIM port mapping is registered. + + Keyword Arguments: + bandwidth (int): value in kilobytes + latency (int): value in milliseconds + + Other QoS might be passed as keyword arguments. + + Returns: + tuple: ``(service_id, conn_info)`` containing: + - *service_uuid* (str): UUID of the established connectivity + service + - *conn_info* (dict or None): Information to be stored at the + database (or ``None``). This information will be provided to + the :meth:`~.edit_connectivity_service` and :obj:`~.delete`. + **MUST** be JSON/YAML-serializable (plain data structures). + + Raises: + SdnConnectorException: In case of error. + """ + SETTINGS = { # min_endpoints, max_endpoints, vpn_service_type + 'ELINE': (2, 2, 'vpws'), # Virtual Private Wire Service + 'ELAN' : (2, None, 'vpls'), # Virtual Private LAN Service + } + settings = SETTINGS.get(service_type) + if settings is None: raise NotImplementedError('Unsupported service_type({:s})'.format(str(service_type))) + min_endpoints, max_endpoints, vpn_service_type = settings + + if max_endpoints is not None and len(connection_points) > max_endpoints: + msg = "Connections between more than {:d} endpoints are not supported for service_type {:s}" + raise SdnConnectorError(msg.format(max_endpoints, service_type)) + + if min_endpoints is not None and len(connection_points) < min_endpoints: + msg = "Connections must be of at least {:d} endpoints for service_type {:s}" + raise SdnConnectorError(msg.format(min_endpoints, service_type)) + + """First step, create the vpn service""" + uuid_l2vpn = str(uuid.uuid4()) + vpn_service = {} + vpn_service["vpn-id"] = uuid_l2vpn + vpn_service["vpn-svc-type"] = vpn_service_type + vpn_service["svc-topo"] = "any-to-any" + vpn_service["customer-name"] = "osm" + vpn_service_list = [] + vpn_service_list.append(vpn_service) + vpn_service_l = {"ietf-l2vpn-svc:vpn-service": vpn_service_list} + response_service_creation = None + conn_info = [] + self.logger.info("Sending vpn-service :{}".format(vpn_service_l)) + + try: + endpoint_service_creation = ( + "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services".format( + self.wim["wim_url"] + ) + ) + response_service_creation = requests.post( + endpoint_service_creation, + headers=self.headers, + json=vpn_service_l, + auth=self.auth, + ) + except requests.exceptions.ConnectionError: + raise SdnConnectorError( + "Request to create service Timeout", http_code=408 + ) + + if response_service_creation.status_code == 409: + raise SdnConnectorError( + "Service already exists", + http_code=response_service_creation.status_code, + ) + elif response_service_creation.status_code != requests.codes.created: + raise SdnConnectorError( + "Request to create service not accepted", + http_code=response_service_creation.status_code, + ) + + self.logger.info('connection_points = {:s}'.format(str(connection_points))) + + # Check if protected paths are requested + extended_connection_points = [] + for connection_point in connection_points: + extended_connection_points.append(connection_point) + + connection_point_wan_info = self.search_mapp(connection_point) + service_mapping_info = connection_point_wan_info.get('service_mapping_info', {}) + redundant_service_endpoint_ids = service_mapping_info.get('redundant') + + if redundant_service_endpoint_ids is None: continue + if len(redundant_service_endpoint_ids) == 0: continue + + for redundant_service_endpoint_id in redundant_service_endpoint_ids: + redundant_connection_point = copy.deepcopy(connection_point) + redundant_connection_point['service_endpoint_id'] = redundant_service_endpoint_id + extended_connection_points.append(redundant_connection_point) + + self.logger.info('extended_connection_points = {:s}'.format(str(extended_connection_points))) + + """Second step, create the connections and vpn attachments""" + for connection_point in extended_connection_points: + connection_point_wan_info = self.search_mapp(connection_point) + site_network_access = {} + connection = {} + + if connection_point["service_endpoint_encapsulation_type"] != "none": + if ( + connection_point["service_endpoint_encapsulation_type"] + == "dot1q" + ): + """The connection is a VLAN""" + connection["encapsulation-type"] = "dot1q-vlan-tagged" + tagged = {} + tagged_interf = {} + service_endpoint_encapsulation_info = connection_point[ + "service_endpoint_encapsulation_info" + ] + + if service_endpoint_encapsulation_info["vlan"] is None: + raise SdnConnectorError("VLAN must be provided") + + tagged_interf["cvlan-id"] = service_endpoint_encapsulation_info[ + "vlan" + ] + tagged["dot1q-vlan-tagged"] = tagged_interf + connection["tagged-interface"] = tagged + else: + raise NotImplementedError("Encapsulation type not implemented") + + site_network_access["connection"] = connection + self.logger.info("Sending connection:{}".format(connection)) + vpn_attach = {} + vpn_attach["vpn-id"] = uuid_l2vpn + vpn_attach["site-role"] = vpn_service["svc-topo"] + "-role" + site_network_access["vpn-attachment"] = vpn_attach + self.logger.info("Sending vpn-attachement :{}".format(vpn_attach)) + uuid_sna = str(uuid.uuid4()) + site_network_access["network-access-id"] = uuid_sna + site_network_access["bearer"] = connection_point_wan_info[ + "service_mapping_info" + ]["bearer"] + + access_priority = connection_point_wan_info["service_mapping_info"].get("priority") + if access_priority is not None: + availability = {} + availability["access-priority"] = access_priority + availability["single-active"] = [None] + site_network_access["availability"] = availability + + constraint = {} + constraint['constraint-type'] = 'end-to-end-diverse' + constraint['target'] = {'all-other-accesses': [None]} + + access_diversity = {} + access_diversity['constraints'] = {'constraint': []} + access_diversity['constraints']['constraint'].append(constraint) + site_network_access["access-diversity"] = access_diversity + + site_network_accesses = {} + site_network_access_list = [] + site_network_access_list.append(site_network_access) + site_network_accesses[ + "ietf-l2vpn-svc:site-network-access" + ] = site_network_access_list + conn_info_d = {} + conn_info_d["site"] = connection_point_wan_info["service_mapping_info"][ + "site-id" + ] + conn_info_d["site-network-access-id"] = site_network_access[ + "network-access-id" + ] + conn_info_d["mapping"] = None + conn_info.append(conn_info_d) + + try: + endpoint_site_network_access_creation = ( + "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/" + "sites/site={}/site-network-accesses/".format( + self.wim["wim_url"], + connection_point_wan_info["service_mapping_info"][ + "site-id" + ], + ) + ) + response_endpoint_site_network_access_creation = requests.post( + endpoint_site_network_access_creation, + headers=self.headers, + json=site_network_accesses, + auth=self.auth, + ) + + if ( + response_endpoint_site_network_access_creation.status_code + == 409 + ): + self.delete_connectivity_service(vpn_service["vpn-id"]) + + raise SdnConnectorError( + "Site_Network_Access with ID '{}' already exists".format( + site_network_access["network-access-id"] + ), + http_code=response_endpoint_site_network_access_creation.status_code, + ) + elif ( + response_endpoint_site_network_access_creation.status_code + == 400 + ): + self.delete_connectivity_service(vpn_service["vpn-id"]) + + raise SdnConnectorError( + "Site {} does not exist".format( + connection_point_wan_info["service_mapping_info"][ + "site-id" + ] + ), + http_code=response_endpoint_site_network_access_creation.status_code, + ) + elif ( + response_endpoint_site_network_access_creation.status_code + != requests.codes.created + and response_endpoint_site_network_access_creation.status_code + != requests.codes.no_content + ): + self.delete_connectivity_service(vpn_service["vpn-id"]) + + raise SdnConnectorError( + "Request not accepted", + http_code=response_endpoint_site_network_access_creation.status_code, + ) + except requests.exceptions.ConnectionError: + self.delete_connectivity_service(vpn_service["vpn-id"]) + + raise SdnConnectorError("Request Timeout", http_code=408) + + return uuid_l2vpn, conn_info + + def delete_connectivity_service(self, service_uuid, conn_info=None): + """Disconnect multi-site endpoints previously connected + + This method should receive as the first argument the UUID generated by + the ``create_connectivity_service`` + """ + try: + self.logger.info("Sending delete") + servicepoint = "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services/vpn-service={}/".format( + self.wim["wim_url"], service_uuid + ) + response = requests.delete(servicepoint, auth=self.auth) + + if response.status_code != requests.codes.no_content: + raise SdnConnectorError( + "Error in the request", http_code=response.status_code + ) + except requests.exceptions.ConnectionError: + raise SdnConnectorError("Request Timeout", http_code=408) + + def edit_connectivity_service( + self, service_uuid, conn_info=None, connection_points=None, **kwargs + ): + """Change an existing connectivity service, see + ``create_connectivity_service``""" + # sites = {"sites": {}} + # site_list = [] + vpn_service = {} + vpn_service["svc-topo"] = "any-to-any" + counter = 0 + + for connection_point in connection_points: + site_network_access = {} + connection_point_wan_info = self.search_mapp(connection_point) + params_site = {} + params_site["site-id"] = connection_point_wan_info["service_mapping_info"][ + "site-id" + ] + params_site["site-vpn-flavor"] = "site-vpn-flavor-single" + device_site = {} + device_site["device-id"] = connection_point_wan_info["device-id"] + params_site["devices"] = device_site + # network_access = {} + connection = {} + + if connection_point["service_endpoint_encapsulation_type"] != "none": + if connection_point["service_endpoint_encapsulation_type"] == "dot1q": + """The connection is a VLAN""" + connection["encapsulation-type"] = "dot1q-vlan-tagged" + tagged = {} + tagged_interf = {} + service_endpoint_encapsulation_info = connection_point[ + "service_endpoint_encapsulation_info" + ] + + if service_endpoint_encapsulation_info["vlan"] is None: + raise SdnConnectorError("VLAN must be provided") + + tagged_interf["cvlan-id"] = service_endpoint_encapsulation_info[ + "vlan" + ] + tagged["dot1q-vlan-tagged"] = tagged_interf + connection["tagged-interface"] = tagged + else: + raise NotImplementedError("Encapsulation type not implemented") + + site_network_access["connection"] = connection + vpn_attach = {} + vpn_attach["vpn-id"] = service_uuid + vpn_attach["site-role"] = vpn_service["svc-topo"] + "-role" + site_network_access["vpn-attachment"] = vpn_attach + uuid_sna = conn_info[counter]["site-network-access-id"] + site_network_access["network-access-id"] = uuid_sna + site_network_access["bearer"] = connection_point_wan_info[ + "service_mapping_info" + ]["bearer"] + site_network_accesses = {} + site_network_access_list = [] + site_network_access_list.append(site_network_access) + site_network_accesses[ + "ietf-l2vpn-svc:site-network-access" + ] = site_network_access_list + + try: + endpoint_site_network_access_edit = ( + "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/" + "sites/site={}/site-network-accesses/".format( + self.wim["wim_url"], + connection_point_wan_info["service_mapping_info"]["site-id"], + ) + ) + response_endpoint_site_network_access_creation = requests.put( + endpoint_site_network_access_edit, + headers=self.headers, + json=site_network_accesses, + auth=self.auth, + ) + + if response_endpoint_site_network_access_creation.status_code == 400: + raise SdnConnectorError( + "Service does not exist", + http_code=response_endpoint_site_network_access_creation.status_code, + ) + elif ( + response_endpoint_site_network_access_creation.status_code != 201 + and response_endpoint_site_network_access_creation.status_code + != 204 + ): + raise SdnConnectorError( + "Request no accepted", + http_code=response_endpoint_site_network_access_creation.status_code, + ) + except requests.exceptions.ConnectionError: + raise SdnConnectorError("Request Timeout", http_code=408) + + counter += 1 + + return None + + def clear_all_connectivity_services(self): + """Delete all WAN Links corresponding to a WIM""" + try: + self.logger.info("Sending clear all connectivity services") + servicepoint = ( + "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services".format( + self.wim["wim_url"] + ) + ) + response = requests.delete(servicepoint, auth=self.auth) + + if response.status_code != requests.codes.no_content: + raise SdnConnectorError( + "Unable to clear all connectivity services", + http_code=response.status_code, + ) + except requests.exceptions.ConnectionError: + raise SdnConnectorError("Request Timeout", http_code=408) + + def get_all_active_connectivity_services(self): + """Provide information about all active connections provisioned by a + WIM + """ + try: + self.logger.info("Sending get all connectivity services") + servicepoint = ( + "{}/restconf/data/ietf-l2vpn-svc:l2vpn-svc/vpn-services".format( + self.wim["wim_url"] + ) + ) + response = requests.get(servicepoint, auth=self.auth) + + if response.status_code != requests.codes.ok: + raise SdnConnectorError( + "Unable to get all connectivity services", + http_code=response.status_code, + ) + + return response + except requests.exceptions.ConnectionError: + raise SdnConnectorError("Request Timeout", http_code=408) diff --git a/src/service/service/path_computation_element/__init__.py b/hackfest/mock_osm/__init__.py similarity index 100% rename from src/service/service/path_computation_element/__init__.py rename to hackfest/mock_osm/__init__.py diff --git a/hackfest/mock_osm/__main__.py b/hackfest/mock_osm/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..e76616eab38cc072f959231e08743e312cf6b0b2 --- /dev/null +++ b/hackfest/mock_osm/__main__.py @@ -0,0 +1,94 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +import cmd, logging +from .MockOSM import MockOSM + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +WIM_URL = 'http://10.0.2.15:80' +WIM_USERNAME = 'admin' +WIM_PASSWORD = 'admin' + +# Ref: https://osm.etsi.org/wikipub/index.php/WIM +def create_port_mapping(device_id, port_id, service_endpoint_id, site_id): + bearer_ref = '{:s}:{:s}'.format(device_id, port_id) + return { + 'device-id' : device_id, # pop_switch_dpid + 'service_endpoint_id' : service_endpoint_id, # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': bearer_ref}, + 'site-id': site_id, + }, + } + +WIM_PORT_MAPPING = [ + create_port_mapping('R1', '1/2', 'ep-R1-1/2', '1'), + create_port_mapping('R1', '1/3', 'ep-R1-1/3', '1'), + create_port_mapping('R2', '1/2', 'ep-R2-1/2', '2'), + create_port_mapping('R2', '1/3', 'ep-R2-1/3', '2'), + create_port_mapping('R3', '1/2', 'ep-R3-1/2', '3'), + create_port_mapping('R3', '1/3', 'ep-R3-1/3', '3'), + create_port_mapping('R4', '1/2', 'ep-R4-1/2', '4'), + create_port_mapping('R4', '1/3', 'ep-R4-1/3', '4'), +] + +SERVICE_TYPE = 'ELINE' +SERVICE_CONNECTION_POINTS = [ + {'service_endpoint_id': 'ep-R1-1/2', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, + {'service_endpoint_id': 'ep-R4-1/3', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] + +class MockOSMShell(cmd.Cmd): + intro = 'Welcome to the MockOSM shell.\nType help or ? to list commands.\n' + prompt = '(mock-osm) ' + file = None + + def __init__(self, *args, **kwargs) -> None: + super().__init__(*args, **kwargs) + self.mock_osm = MockOSM(WIM_URL, WIM_PORT_MAPPING, WIM_USERNAME, WIM_PASSWORD) + + # ----- basic turtle commands ----- + def do_create(self, arg): + 'Create an ELINE (L2) service' + service_uuid = self.mock_osm.create_connectivity_service( + SERVICE_TYPE, SERVICE_CONNECTION_POINTS) + print('Service {:s} created'.format(service_uuid)) + + def do_status(self, arg): + 'Retrieve status of services' + service_uuids = list(self.mock_osm.conn_info.keys()) + for service_uuid in service_uuids: + status = self.mock_osm.get_connectivity_service_status(service_uuid) + print('Status of Service {:s} is {:s}'.format(service_uuid, str(status))) + + def do_delete(self, arg): + 'Delete all services' + service_uuids = list(self.mock_osm.conn_info.keys()) + for service_uuid in service_uuids: + self.mock_osm.delete_connectivity_service(service_uuid) + print('Service {:s} deleted'.format(service_uuid)) + + def do_exit(self, arg): + 'Exit MockOSM' + print('Bye!') + return True + +if __name__ == '__main__': + MockOSMShell().cmdloop() diff --git a/hackfest/mock_osm/acknowledgements.txt b/hackfest/mock_osm/acknowledgements.txt new file mode 100644 index 0000000000000000000000000000000000000000..b7ce926dd006d9bc8afaffbed212d90fb05adbef --- /dev/null +++ b/hackfest/mock_osm/acknowledgements.txt @@ -0,0 +1,3 @@ +MockOSM is based on source code taken from: +https://osm.etsi.org/gitlab/osm/ro/-/blob/master/RO-plugin/osm_ro_plugin/sdnconn.py +https://osm.etsi.org/gitlab/osm/ro/-/blob/master/RO-SDN-ietfl2vpn/osm_rosdn_ietfl2vpn/wimconn_ietfl2vpn.py diff --git a/hackfest/mock_osm/commands.txt b/hackfest/mock_osm/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..4e21bac3d668f6f6b1c20ceb485d3a4ad679f95e --- /dev/null +++ b/hackfest/mock_osm/commands.txt @@ -0,0 +1,25 @@ +############ +# Mock OSM +############ + +$ cd ~/tfs-ctrl/hackfest/ +$ python -m mock_osm +Welcome to the MockOSM shell. +Type help or ? to list commands. + +(mock-osm) create +Service b8c99e2c-39d8-424d-9833-554634269555 created +# Service should be created in TFS. Check "Slice" and "Service" pages on WebUI. +# Check configuration rules in "Devices" + +(mock-osm) status +response.status_code=200 +Status of Service b8c99e2c-39d8-424d-9833-554634269555 is {'sdn_status': 'ACTIVE'} + +(mock-osm) delete +Service b8c99e2c-39d8-424d-9833-554634269555 deleted +# Service should be removed from TFS. Check "Slice" and "Service" pages on WebUI. +# Check configuration rules in "Devices" + +(mock-osm) exit +Bye! diff --git a/hackfest/mock_osm/sdnconn.py b/hackfest/mock_osm/sdnconn.py new file mode 100644 index 0000000000000000000000000000000000000000..a1849c9ef3e1a1260ff42bbadabc99f91a6435d7 --- /dev/null +++ b/hackfest/mock_osm/sdnconn.py @@ -0,0 +1,242 @@ +# -*- coding: utf-8 -*- +## +# Copyright 2018 University of Bristol - High Performance Networks Research +# Group +# All Rights Reserved. +# +# Contributors: Anderson Bravalheri, Dimitrios Gkounis, Abubakar Siddique +# Muqaddas, Navdeep Uniyal, Reza Nejabati and Dimitra Simeonidou +# +# Licensed 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. +# +# For those usages not covered by the Apache License, Version 2.0 please +# contact with: +# +# Neither the name of the University of Bristol nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# This work has been performed in the context of DCMS UK 5G Testbeds +# & Trials Programme and in the framework of the Metro-Haul project - +# funded by the European Commission under Grant number 761727 through the +# Horizon 2020 and 5G-PPP programmes. +## +"""The SDN connector is responsible for establishing both wide area network connectivity (WIM) +and intranet SDN connectivity. + +It receives information from ports to be connected . +""" + +import logging +from http import HTTPStatus + + +class SdnConnectorError(Exception): + """Base Exception for all connector related errors + provide the parameter 'http_code' (int) with the error code: + Bad_Request = 400 + Unauthorized = 401 (e.g. credentials are not valid) + Not_Found = 404 (e.g. try to edit or delete a non existing connectivity service) + Forbidden = 403 + Method_Not_Allowed = 405 + Not_Acceptable = 406 + Request_Timeout = 408 (e.g timeout reaching server, or cannot reach the server) + Conflict = 409 + Service_Unavailable = 503 + Internal_Server_Error = 500 + """ + + def __init__(self, message, http_code=HTTPStatus.INTERNAL_SERVER_ERROR.value): + Exception.__init__(self, message) + self.http_code = http_code + + +class SdnConnectorBase(object): + """Abstract base class for all the SDN connectors + + Arguments: + wim (dict): WIM record, as stored in the database + wim_account (dict): WIM account record, as stored in the database + config + The arguments of the constructor are converted to object attributes. + An extra property, ``service_endpoint_mapping`` is created from ``config``. + """ + + def __init__(self, wim, wim_account, config=None, logger=None): + """ + :param wim: (dict). Contains among others 'wim_url' + :param wim_account: (dict). Contains among others 'uuid' (internal id), 'name', + 'sdn' (True if is intended for SDN-assist or False if intended for WIM), 'user', 'password'. + :param config: (dict or None): Particular information of plugin. These keys if present have a common meaning: + 'mapping_not_needed': (bool) False by default or if missing, indicates that mapping is not needed. + 'service_endpoint_mapping': (list) provides the internal endpoint mapping. The meaning is: + KEY meaning for WIM meaning for SDN assist + -------- -------- -------- + device_id pop_switch_dpid compute_id + device_interface_id pop_switch_port compute_pci_address + service_endpoint_id wan_service_endpoint_id SDN_service_endpoint_id + service_mapping_info wan_service_mapping_info SDN_service_mapping_info + contains extra information if needed. Text in Yaml format + switch_dpid wan_switch_dpid SDN_switch_dpid + switch_port wan_switch_port SDN_switch_port + datacenter_id vim_account vim_account + id: (internal, do not use) + wim_id: (internal, do not use) + :param logger (logging.Logger): optional logger object. If none is passed 'openmano.sdn.sdnconn' is used. + """ + self.logger = logger or logging.getLogger("ro.sdn") + self.wim = wim + self.wim_account = wim_account + self.config = config or {} + self.service_endpoint_mapping = self.config.get("service_endpoint_mapping", []) + + def check_credentials(self): + """Check if the connector itself can access the SDN/WIM with the provided url (wim.wim_url), + user (wim_account.user), and password (wim_account.password) + + Raises: + SdnConnectorError: Issues regarding authorization, access to + external URLs, etc are detected. + """ + raise NotImplementedError + + def get_connectivity_service_status(self, service_uuid, conn_info=None): + """Monitor the status of the connectivity service established + + Arguments: + service_uuid (str): UUID of the connectivity service + conn_info (dict or None): Information returned by the connector + during the service creation/edition and subsequently stored in + the database. + + Returns: + dict: JSON/YAML-serializable dict that contains a mandatory key + ``sdn_status`` associated with one of the following values:: + + {'sdn_status': 'ACTIVE'} + # The service is up and running. + + {'sdn_status': 'INACTIVE'} + # The service was created, but the connector + # cannot determine yet if connectivity exists + # (ideally, the caller needs to wait and check again). + + {'sdn_status': 'DOWN'} + # Connection was previously established, + # but an error/failure was detected. + + {'sdn_status': 'ERROR'} + # An error occurred when trying to create the service/ + # establish the connectivity. + + {'sdn_status': 'BUILD'} + # Still trying to create the service, the caller + # needs to wait and check again. + + Additionally ``error_msg``(**str**) and ``sdn_info``(**dict**) + keys can be used to provide additional status explanation or + new information available for the connectivity service. + """ + raise NotImplementedError + + def create_connectivity_service(self, service_type, connection_points, **kwargs): + """ + Establish SDN/WAN connectivity between the endpoints + :param service_type: (str): ``ELINE`` (L2), ``ELAN`` (L2), ``ETREE`` (L2), ``L3``. + :param connection_points: (list): each point corresponds to + an entry point to be connected. For WIM: from the DC to the transport network. + For SDN: Compute/PCI to the transport network. One + connection point serves to identify the specific access and + some other service parameters, such as encapsulation type. + Each item of the list is a dict with: + "service_endpoint_id": (str)(uuid) Same meaning that for 'service_endpoint_mapping' (see __init__) + In case the config attribute mapping_not_needed is True, this value is not relevant. In this case + it will contain the string "device_id:device_interface_id" + "service_endpoint_encapsulation_type": None, "dot1q", ... + "service_endpoint_encapsulation_info": (dict) with: + "vlan": ..., (int, present if encapsulation is dot1q) + "vni": ... (int, present if encapsulation is vxlan), + "peers": [(ipv4_1), (ipv4_2)] (present if encapsulation is vxlan) + "mac": ... + "device_id": ..., same meaning that for 'service_endpoint_mapping' (see __init__) + "device_interface_id": same meaning that for 'service_endpoint_mapping' (see __init__) + "switch_dpid": ..., present if mapping has been found for this device_id,device_interface_id + "swith_port": ... present if mapping has been found for this device_id,device_interface_id + "service_mapping_info": present if mapping has been found for this device_id,device_interface_id + :param kwargs: For future versions: + bandwidth (int): value in kilobytes + latency (int): value in milliseconds + Other QoS might be passed as keyword arguments. + :return: tuple: ``(service_id, conn_info)`` containing: + - *service_uuid* (str): UUID of the established connectivity service + - *conn_info* (dict or None): Information to be stored at the database (or ``None``). + This information will be provided to the :meth:`~.edit_connectivity_service` and :obj:`~.delete`. + **MUST** be JSON/YAML-serializable (plain data structures). + :raises: SdnConnectorException: In case of error. Nothing should be created in this case. + Provide the parameter http_code + """ + raise NotImplementedError + + def delete_connectivity_service(self, service_uuid, conn_info=None): + """ + Disconnect multi-site endpoints previously connected + + :param service_uuid: The one returned by create_connectivity_service + :param conn_info: The one returned by last call to 'create_connectivity_service' or 'edit_connectivity_service' + if they do not return None + :return: None + :raises: SdnConnectorException: In case of error. The parameter http_code must be filled + """ + raise NotImplementedError + + def edit_connectivity_service( + self, service_uuid, conn_info=None, connection_points=None, **kwargs + ): + """Change an existing connectivity service. + + This method's arguments and return value follow the same convention as + :meth:`~.create_connectivity_service`. + + :param service_uuid: UUID of the connectivity service. + :param conn_info: (dict or None): Information previously returned by last call to create_connectivity_service + or edit_connectivity_service + :param connection_points: (list): If provided, the old list of connection points will be replaced. + :param kwargs: Same meaning that create_connectivity_service + :return: dict or None: Information to be updated and stored at the database. + When ``None`` is returned, no information should be changed. + When an empty dict is returned, the database record will be deleted. + **MUST** be JSON/YAML-serializable (plain data structures). + Raises: + SdnConnectorException: In case of error. + """ + + def clear_all_connectivity_services(self): + """Delete all WAN Links in a WIM. + + This method is intended for debugging only, and should delete all the + connections controlled by the WIM/SDN, not only the connections that + a specific RO is aware of. + + Raises: + SdnConnectorException: In case of error. + """ + raise NotImplementedError + + def get_all_active_connectivity_services(self): + """Provide information about all active connections provisioned by a + WIM. + + Raises: + SdnConnectorException: In case of error. + """ + raise NotImplementedError diff --git a/hackfest/netconf-oc/build-instructions.txt b/hackfest/netconf-oc/build-instructions.txt new file mode 100644 index 0000000000000000000000000000000000000000..c485bc006d25244d170f6c515ea985d7cec6d75b --- /dev/null +++ b/hackfest/netconf-oc/build-instructions.txt @@ -0,0 +1,14 @@ +# Build a Netconf server supporting basic OpenConfig data model + +mkdir -p ~/tfs-ctrl/netconf-oc/{git_openconfig,openconfig} + +git clone https://github.com/openconfig/public.git ~/tfs-ctrl/netconf-oc/git_openconfig + +cd ~/tfs-ctrl/netconf-oc + +export PYBINDPLUGIN=`/usr/bin/env python -c 'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'` +pyang --plugindir $PYBINDPLUGIN -p git_openconfig/release/models/ -f pybind --split-class-dir openconfig \ + git_openconfig/release/models/interfaces/openconfig-interfaces.yang \ + git_openconfig/release/models/interfaces/openconfig-if-ethernet.yang \ + git_openconfig/release/models/platform/openconfig-platform.yang \ + git_openconfig/release/models/platform/openconfig-platform-port.yang diff --git a/hackfest/netconf-oc/device_definition.py b/hackfest/netconf-oc/device_definition.py new file mode 100644 index 0000000000000000000000000000000000000000..15efdee42794ebba474ed4a1c5573e6ed5b688a1 --- /dev/null +++ b/hackfest/netconf-oc/device_definition.py @@ -0,0 +1,24 @@ +from lxml import etree +from netconf import util +from pyangbind.lib.serialise import pybindIETFXMLEncoder + +from openconfig.components import components +from openconfig.interfaces import interfaces + +def get_device_definition(): + occ = components() + port_1_1 = occ.component.add("1/1") + port_1_1.state._set_type("PORT") # state.type is read-only; use special method to set it + + port_1_2 = occ.component.add("1/2") + port_1_2.state._set_type("PORT") # state.type is read-only; use special method to set it + + port_1_3 = occ.component.add("1/3") + port_1_3.state._set_type("PORT") # state.type is read-only; use special method to set it + + ocif = interfaces() + + data = util.elm("nc:data") + data.append(etree.XML(pybindIETFXMLEncoder.serialise(occ))) + data.append(etree.XML(pybindIETFXMLEncoder.serialise(ocif))) + return data diff --git a/hackfest/netconf-oc/interfaces.xml b/hackfest/netconf-oc/interfaces.xml new file mode 100644 index 0000000000000000000000000000000000000000..8358a0595573953b61c28f0deeca2e99d554f4ce --- /dev/null +++ b/hackfest/netconf-oc/interfaces.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hackfest/netconf-oc/openconfig/__init__.py b/hackfest/netconf-oc/openconfig/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ccaf6ed7248d84e4f7b154ceb40c906debe512b8 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/__init__.py @@ -0,0 +1,399 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import interfaces +class openconfig_interfaces(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /openconfig-interfaces. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Model for managing network interfaces and subinterfaces. This +module also defines convenience types / groupings for other +models to create references to interfaces: + + base-interface-ref (type) - reference to a base interface + interface-ref (grouping) - container for reference to a + interface + subinterface + interface-ref-state (grouping) - container for read-only + (opstate) reference to interface + subinterface + +This model reuses data items defined in the IETF YANG model for +interfaces described by RFC 7223 with an alternate structure +(particularly for operational state data) and with +additional configuration items. + +Portions of this code were derived from IETF RFC 7223. +Please reproduce this note if possible. + +IETF code is subject to the following copyright and license: +Copyright (c) IETF Trust and the persons identified as authors of +the code. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, is permitted pursuant to, and subject to the license +terms contained in, the Simplified BSD License set forth in +Section 4.c of the IETF Trust's Legal Provisions Relating +to IETF Documents (http://trustee.ietf.org/license-info). + """ + __slots__ = ('_path_helper', '_extmethods', '__interfaces',) + + _yang_name = 'openconfig-interfaces' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__interfaces = YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_interfaces(self): + """ + Getter method for interfaces, mapped from YANG variable /interfaces (container) + + YANG Description: Top level container for interfaces, including configuration +and state data. + """ + return self.__interfaces + + def _set_interfaces(self, v, load=False): + """ + Setter method for interfaces, mapped from YANG variable /interfaces (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_interfaces is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_interfaces() directly. + + YANG Description: Top level container for interfaces, including configuration +and state data. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """interfaces must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__interfaces = t + if hasattr(self, '_set'): + self._set() + + def _unset_interfaces(self): + self.__interfaces = YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + interfaces = __builtin__.property(_get_interfaces, _set_interfaces) + + + _pyangbind_elements = OrderedDict([('interfaces', interfaces), ]) + + +class openconfig_if_ethernet(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-if-ethernet - based on the path /openconfig-if-ethernet. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Model for managing Ethernet interfaces -- augments the OpenConfig +model for interface configuration and state. + """ + _pyangbind_elements = {} + + + +from . import components +class openconfig_platform(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /openconfig-platform. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: This module defines a data model for representing a system +component inventory, which can include hardware or software +elements arranged in an arbitrary structure. The primary +relationship supported by the model is containment, e.g., +components containing subcomponents. + +It is expected that this model reflects every field replacable +unit on the device at a minimum (i.e., additional information +may be supplied about non-replacable components). + +Every element in the inventory is termed a 'component' with each +component expected to have a unique name and type, and optionally +a unique system-assigned identifier and FRU number. The +uniqueness is guaranteed by the system within the device. + +Components may have properties defined by the system that are +modeled as a list of key-value pairs. These may or may not be +user-configurable. The model provides a flag for the system +to optionally indicate which properties are user configurable. + +Each component also has a list of 'subcomponents' which are +references to other components. Appearance in a list of +subcomponents indicates a containment relationship as described +above. For example, a linecard component may have a list of +references to port components that reside on the linecard. + +This schema is generic to allow devices to express their own +platform-specific structure. It may be augmented by additional +component type-specific schemas that provide a common structure +for well-known component types. In these cases, the system is +expected to populate the common component schema, and may +optionally also represent the component and its properties in the +generic structure. + +The properties for each component may include dynamic values, +e.g., in the 'state' part of the schema. For example, a CPU +component may report its utilization, temperature, or other +physical properties. The intent is to capture all platform- +specific physical data in one location, including inventory +(presence or absence of a component) and state (physical +attributes or status). + """ + __slots__ = ('_path_helper', '_extmethods', '__components',) + + _yang_name = 'openconfig-platform' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_components(self): + """ + Getter method for components, mapped from YANG variable /components (container) + + YANG Description: Enclosing container for the components in the system. + """ + return self.__components + + def _set_components(self, v, load=False): + """ + Setter method for components, mapped from YANG variable /components (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_components is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_components() directly. + + YANG Description: Enclosing container for the components in the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """components must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__components = t + if hasattr(self, '_set'): + self._set() + + def _unset_components(self): + self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + components = __builtin__.property(_get_components, _set_components) + + + _pyangbind_elements = OrderedDict([('components', components), ]) + + +from . import components +class openconfig_platform_common(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /openconfig-platform-common. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: This modules contains common groupings that are used in multiple +components within the platform module. + """ + __slots__ = ('_path_helper', '_extmethods', '__components',) + + _yang_name = 'openconfig-platform-common' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_components(self): + """ + Getter method for components, mapped from YANG variable /components (container) + + YANG Description: Enclosing container for the components in the system. + """ + return self.__components + + def _set_components(self, v, load=False): + """ + Setter method for components, mapped from YANG variable /components (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_components is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_components() directly. + + YANG Description: Enclosing container for the components in the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """components must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__components = t + if hasattr(self, '_set'): + self._set() + + def _unset_components(self): + self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + components = __builtin__.property(_get_components, _set_components) + + + _pyangbind_elements = OrderedDict([('components', components), ]) + + +class openconfig_platform_port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-port - based on the path /openconfig-platform-port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: This module defines data related to PORT components in the +openconfig-platform model + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/__init__.py b/hackfest/netconf-oc/openconfig/components/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1470af40e5acad9715a3acf1473e1e8955426a03 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import component +class components(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the components in the system. + """ + __slots__ = ('_path_helper', '_extmethods', '__component',) + + _yang_name = 'components' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components'] + + def _get_component(self): + """ + Getter method for component, mapped from YANG variable /components/component (list) + + YANG Description: List of components, keyed by component name. + """ + return self.__component + + def _set_component(self, v, load=False): + """ + Setter method for component, mapped from YANG variable /components/component (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_component is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_component() directly. + + YANG Description: List of components, keyed by component name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """component must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__component = t + if hasattr(self, '_set'): + self._set() + + def _unset_component(self): + self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + component = __builtin__.property(_get_component, _set_component) + + + _pyangbind_elements = OrderedDict([('component', component), ]) + + +from . import component +class components(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the components in the system. + """ + __slots__ = ('_path_helper', '_extmethods', '__component',) + + _yang_name = 'components' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components'] + + def _get_component(self): + """ + Getter method for component, mapped from YANG variable /components/component (list) + + YANG Description: List of components, keyed by component name. + """ + return self.__component + + def _set_component(self, v, load=False): + """ + Setter method for component, mapped from YANG variable /components/component (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_component is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_component() directly. + + YANG Description: List of components, keyed by component name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """component must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__component = t + if hasattr(self, '_set'): + self._set() + + def _unset_component(self): + self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + component = __builtin__.property(_get_component, _set_component) + + + _pyangbind_elements = OrderedDict([('component', component), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/__init__.py b/hackfest/netconf-oc/openconfig/components/component/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b80cb6139d5290b7ec4e62a14f2faeba46886d31 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/__init__.py @@ -0,0 +1,1424 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +from . import properties +from . import subcomponents +from . import chassis +from . import port +from . import power_supply +from . import fan +from . import fabric +from . import storage +from . import cpu +from . import integrated_circuit +from . import backplane +from . import software_module +from . import controller_card +class component(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of components, keyed by component name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__properties','__subcomponents','__chassis','__port','__power_supply','__fan','__fabric','__storage','__cpu','__integrated_circuit','__backplane','__software_module','__controller_card',) + + _yang_name = 'component' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/name (leafref) + + YANG Description: References the component name + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the component name + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/config (container) + + YANG Description: Configuration data for each component + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/state (container) + + YANG Description: Operational state data for each component + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_properties(self): + """ + Getter method for properties, mapped from YANG variable /components/component/properties (container) + + YANG Description: Enclosing container + """ + return self.__properties + + def _set_properties(self, v, load=False): + """ + Setter method for properties, mapped from YANG variable /components/component/properties (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_properties is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_properties() directly. + + YANG Description: Enclosing container + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """properties must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__properties = t + if hasattr(self, '_set'): + self._set() + + def _unset_properties(self): + self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_subcomponents(self): + """ + Getter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container) + + YANG Description: Enclosing container for subcomponent references + """ + return self.__subcomponents + + def _set_subcomponents(self, v, load=False): + """ + Setter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_subcomponents is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subcomponents() directly. + + YANG Description: Enclosing container for subcomponent references + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subcomponents must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__subcomponents = t + if hasattr(self, '_set'): + self._set() + + def _unset_subcomponents(self): + self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_chassis(self): + """ + Getter method for chassis, mapped from YANG variable /components/component/chassis (container) + + YANG Description: Data for chassis components + """ + return self.__chassis + + def _set_chassis(self, v, load=False): + """ + Setter method for chassis, mapped from YANG variable /components/component/chassis (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_chassis is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_chassis() directly. + + YANG Description: Data for chassis components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """chassis must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__chassis = t + if hasattr(self, '_set'): + self._set() + + def _unset_chassis(self): + self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_port(self): + """ + Getter method for port, mapped from YANG variable /components/component/port (container) + + YANG Description: Data for physical port components + """ + return self.__port + + def _set_port(self, v, load=False): + """ + Setter method for port, mapped from YANG variable /components/component/port (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port() directly. + + YANG Description: Data for physical port components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__port = t + if hasattr(self, '_set'): + self._set() + + def _unset_port(self): + self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_power_supply(self): + """ + Getter method for power_supply, mapped from YANG variable /components/component/power_supply (container) + + YANG Description: Data for power supply components + """ + return self.__power_supply + + def _set_power_supply(self, v, load=False): + """ + Setter method for power_supply, mapped from YANG variable /components/component/power_supply (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_power_supply is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_power_supply() directly. + + YANG Description: Data for power supply components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """power_supply must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__power_supply = t + if hasattr(self, '_set'): + self._set() + + def _unset_power_supply(self): + self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_fan(self): + """ + Getter method for fan, mapped from YANG variable /components/component/fan (container) + + YANG Description: Data for fan components + """ + return self.__fan + + def _set_fan(self, v, load=False): + """ + Setter method for fan, mapped from YANG variable /components/component/fan (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fan is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fan() directly. + + YANG Description: Data for fan components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fan must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__fan = t + if hasattr(self, '_set'): + self._set() + + def _unset_fan(self): + self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_fabric(self): + """ + Getter method for fabric, mapped from YANG variable /components/component/fabric (container) + + YANG Description: Data for fabric components + """ + return self.__fabric + + def _set_fabric(self, v, load=False): + """ + Setter method for fabric, mapped from YANG variable /components/component/fabric (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fabric is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fabric() directly. + + YANG Description: Data for fabric components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fabric must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__fabric = t + if hasattr(self, '_set'): + self._set() + + def _unset_fabric(self): + self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_storage(self): + """ + Getter method for storage, mapped from YANG variable /components/component/storage (container) + + YANG Description: Data for storage components + """ + return self.__storage + + def _set_storage(self, v, load=False): + """ + Setter method for storage, mapped from YANG variable /components/component/storage (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_storage is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_storage() directly. + + YANG Description: Data for storage components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """storage must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__storage = t + if hasattr(self, '_set'): + self._set() + + def _unset_storage(self): + self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_cpu(self): + """ + Getter method for cpu, mapped from YANG variable /components/component/cpu (container) + + YANG Description: Data for cpu components + """ + return self.__cpu + + def _set_cpu(self, v, load=False): + """ + Setter method for cpu, mapped from YANG variable /components/component/cpu (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_cpu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_cpu() directly. + + YANG Description: Data for cpu components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """cpu must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__cpu = t + if hasattr(self, '_set'): + self._set() + + def _unset_cpu(self): + self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_integrated_circuit(self): + """ + Getter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container) + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + return self.__integrated_circuit + + def _set_integrated_circuit(self, v, load=False): + """ + Setter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_integrated_circuit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_integrated_circuit() directly. + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """integrated_circuit must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__integrated_circuit = t + if hasattr(self, '_set'): + self._set() + + def _unset_integrated_circuit(self): + self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_backplane(self): + """ + Getter method for backplane, mapped from YANG variable /components/component/backplane (container) + + YANG Description: Data for backplane components + """ + return self.__backplane + + def _set_backplane(self, v, load=False): + """ + Setter method for backplane, mapped from YANG variable /components/component/backplane (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_backplane is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_backplane() directly. + + YANG Description: Data for backplane components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """backplane must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__backplane = t + if hasattr(self, '_set'): + self._set() + + def _unset_backplane(self): + self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_software_module(self): + """ + Getter method for software_module, mapped from YANG variable /components/component/software_module (container) + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + return self.__software_module + + def _set_software_module(self, v, load=False): + """ + Setter method for software_module, mapped from YANG variable /components/component/software_module (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_software_module is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_software_module() directly. + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """software_module must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__software_module = t + if hasattr(self, '_set'): + self._set() + + def _unset_software_module(self): + self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_controller_card(self): + """ + Getter method for controller_card, mapped from YANG variable /components/component/controller_card (container) + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + return self.__controller_card + + def _set_controller_card(self, v, load=False): + """ + Setter method for controller_card, mapped from YANG variable /components/component/controller_card (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_controller_card is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_controller_card() directly. + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """controller_card must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__controller_card = t + if hasattr(self, '_set'): + self._set() + + def _unset_controller_card(self): + self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + properties = __builtin__.property(_get_properties, _set_properties) + subcomponents = __builtin__.property(_get_subcomponents, _set_subcomponents) + chassis = __builtin__.property(_get_chassis, _set_chassis) + port = __builtin__.property(_get_port, _set_port) + power_supply = __builtin__.property(_get_power_supply, _set_power_supply) + fan = __builtin__.property(_get_fan, _set_fan) + fabric = __builtin__.property(_get_fabric, _set_fabric) + storage = __builtin__.property(_get_storage, _set_storage) + cpu = __builtin__.property(_get_cpu, _set_cpu) + integrated_circuit = __builtin__.property(_get_integrated_circuit, _set_integrated_circuit) + backplane = __builtin__.property(_get_backplane, _set_backplane) + software_module = __builtin__.property(_get_software_module, _set_software_module) + controller_card = __builtin__.property(_get_controller_card, _set_controller_card) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('properties', properties), ('subcomponents', subcomponents), ('chassis', chassis), ('port', port), ('power_supply', power_supply), ('fan', fan), ('fabric', fabric), ('storage', storage), ('cpu', cpu), ('integrated_circuit', integrated_circuit), ('backplane', backplane), ('software_module', software_module), ('controller_card', controller_card), ]) + + +from . import config +from . import state +from . import properties +from . import subcomponents +from . import chassis +from . import port +from . import power_supply +from . import fan +from . import fabric +from . import storage +from . import cpu +from . import integrated_circuit +from . import backplane +from . import software_module +from . import controller_card +class component(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of components, keyed by component name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__properties','__subcomponents','__chassis','__port','__power_supply','__fan','__fabric','__storage','__cpu','__integrated_circuit','__backplane','__software_module','__controller_card',) + + _yang_name = 'component' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/name (leafref) + + YANG Description: References the component name + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the component name + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/config (container) + + YANG Description: Configuration data for each component + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/state (container) + + YANG Description: Operational state data for each component + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_properties(self): + """ + Getter method for properties, mapped from YANG variable /components/component/properties (container) + + YANG Description: Enclosing container + """ + return self.__properties + + def _set_properties(self, v, load=False): + """ + Setter method for properties, mapped from YANG variable /components/component/properties (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_properties is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_properties() directly. + + YANG Description: Enclosing container + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """properties must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__properties = t + if hasattr(self, '_set'): + self._set() + + def _unset_properties(self): + self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_subcomponents(self): + """ + Getter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container) + + YANG Description: Enclosing container for subcomponent references + """ + return self.__subcomponents + + def _set_subcomponents(self, v, load=False): + """ + Setter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_subcomponents is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subcomponents() directly. + + YANG Description: Enclosing container for subcomponent references + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subcomponents must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__subcomponents = t + if hasattr(self, '_set'): + self._set() + + def _unset_subcomponents(self): + self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_chassis(self): + """ + Getter method for chassis, mapped from YANG variable /components/component/chassis (container) + + YANG Description: Data for chassis components + """ + return self.__chassis + + def _set_chassis(self, v, load=False): + """ + Setter method for chassis, mapped from YANG variable /components/component/chassis (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_chassis is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_chassis() directly. + + YANG Description: Data for chassis components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """chassis must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__chassis = t + if hasattr(self, '_set'): + self._set() + + def _unset_chassis(self): + self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_port(self): + """ + Getter method for port, mapped from YANG variable /components/component/port (container) + + YANG Description: Data for physical port components + """ + return self.__port + + def _set_port(self, v, load=False): + """ + Setter method for port, mapped from YANG variable /components/component/port (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port() directly. + + YANG Description: Data for physical port components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__port = t + if hasattr(self, '_set'): + self._set() + + def _unset_port(self): + self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_power_supply(self): + """ + Getter method for power_supply, mapped from YANG variable /components/component/power_supply (container) + + YANG Description: Data for power supply components + """ + return self.__power_supply + + def _set_power_supply(self, v, load=False): + """ + Setter method for power_supply, mapped from YANG variable /components/component/power_supply (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_power_supply is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_power_supply() directly. + + YANG Description: Data for power supply components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """power_supply must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__power_supply = t + if hasattr(self, '_set'): + self._set() + + def _unset_power_supply(self): + self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_fan(self): + """ + Getter method for fan, mapped from YANG variable /components/component/fan (container) + + YANG Description: Data for fan components + """ + return self.__fan + + def _set_fan(self, v, load=False): + """ + Setter method for fan, mapped from YANG variable /components/component/fan (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fan is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fan() directly. + + YANG Description: Data for fan components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fan must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__fan = t + if hasattr(self, '_set'): + self._set() + + def _unset_fan(self): + self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_fabric(self): + """ + Getter method for fabric, mapped from YANG variable /components/component/fabric (container) + + YANG Description: Data for fabric components + """ + return self.__fabric + + def _set_fabric(self, v, load=False): + """ + Setter method for fabric, mapped from YANG variable /components/component/fabric (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fabric is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fabric() directly. + + YANG Description: Data for fabric components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fabric must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__fabric = t + if hasattr(self, '_set'): + self._set() + + def _unset_fabric(self): + self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_storage(self): + """ + Getter method for storage, mapped from YANG variable /components/component/storage (container) + + YANG Description: Data for storage components + """ + return self.__storage + + def _set_storage(self, v, load=False): + """ + Setter method for storage, mapped from YANG variable /components/component/storage (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_storage is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_storage() directly. + + YANG Description: Data for storage components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """storage must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__storage = t + if hasattr(self, '_set'): + self._set() + + def _unset_storage(self): + self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_cpu(self): + """ + Getter method for cpu, mapped from YANG variable /components/component/cpu (container) + + YANG Description: Data for cpu components + """ + return self.__cpu + + def _set_cpu(self, v, load=False): + """ + Setter method for cpu, mapped from YANG variable /components/component/cpu (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_cpu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_cpu() directly. + + YANG Description: Data for cpu components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """cpu must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__cpu = t + if hasattr(self, '_set'): + self._set() + + def _unset_cpu(self): + self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_integrated_circuit(self): + """ + Getter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container) + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + return self.__integrated_circuit + + def _set_integrated_circuit(self, v, load=False): + """ + Setter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_integrated_circuit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_integrated_circuit() directly. + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """integrated_circuit must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__integrated_circuit = t + if hasattr(self, '_set'): + self._set() + + def _unset_integrated_circuit(self): + self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_backplane(self): + """ + Getter method for backplane, mapped from YANG variable /components/component/backplane (container) + + YANG Description: Data for backplane components + """ + return self.__backplane + + def _set_backplane(self, v, load=False): + """ + Setter method for backplane, mapped from YANG variable /components/component/backplane (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_backplane is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_backplane() directly. + + YANG Description: Data for backplane components + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """backplane must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__backplane = t + if hasattr(self, '_set'): + self._set() + + def _unset_backplane(self): + self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_software_module(self): + """ + Getter method for software_module, mapped from YANG variable /components/component/software_module (container) + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + return self.__software_module + + def _set_software_module(self, v, load=False): + """ + Setter method for software_module, mapped from YANG variable /components/component/software_module (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_software_module is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_software_module() directly. + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """software_module must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__software_module = t + if hasattr(self, '_set'): + self._set() + + def _unset_software_module(self): + self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_controller_card(self): + """ + Getter method for controller_card, mapped from YANG variable /components/component/controller_card (container) + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + return self.__controller_card + + def _set_controller_card(self, v, load=False): + """ + Setter method for controller_card, mapped from YANG variable /components/component/controller_card (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_controller_card is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_controller_card() directly. + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """controller_card must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__controller_card = t + if hasattr(self, '_set'): + self._set() + + def _unset_controller_card(self): + self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + properties = __builtin__.property(_get_properties, _set_properties) + subcomponents = __builtin__.property(_get_subcomponents, _set_subcomponents) + chassis = __builtin__.property(_get_chassis, _set_chassis) + port = __builtin__.property(_get_port, _set_port) + power_supply = __builtin__.property(_get_power_supply, _set_power_supply) + fan = __builtin__.property(_get_fan, _set_fan) + fabric = __builtin__.property(_get_fabric, _set_fabric) + storage = __builtin__.property(_get_storage, _set_storage) + cpu = __builtin__.property(_get_cpu, _set_cpu) + integrated_circuit = __builtin__.property(_get_integrated_circuit, _set_integrated_circuit) + backplane = __builtin__.property(_get_backplane, _set_backplane) + software_module = __builtin__.property(_get_software_module, _set_software_module) + controller_card = __builtin__.property(_get_controller_card, _set_controller_card) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('properties', properties), ('subcomponents', subcomponents), ('chassis', chassis), ('port', port), ('power_supply', power_supply), ('fan', fan), ('fabric', fabric), ('storage', storage), ('cpu', cpu), ('integrated_circuit', integrated_circuit), ('backplane', backplane), ('software_module', software_module), ('controller_card', controller_card), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py b/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..15bef3759aab3b7d456fc2bf3e79d364fbf2aa2f --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class backplane(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/backplane. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for backplane components + """ + _pyangbind_elements = {} + + + +class backplane(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/backplane. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for backplane components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9e88a339a79e9feb0912c24d1a58043f5a25f5c6 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import utilization +class chassis(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for chassis components + """ + __slots__ = ('_path_helper', '_extmethods', '__utilization',) + + _yang_name = 'chassis' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis'] + + def _get_utilization(self): + """ + Getter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container) + + YANG Description: Utilization of the component. + """ + return self.__utilization + + def _set_utilization(self, v, load=False): + """ + Setter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilization is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilization() directly. + + YANG Description: Utilization of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilization must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__utilization = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilization(self): + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + utilization = __builtin__.property(_get_utilization, _set_utilization) + + + _pyangbind_elements = OrderedDict([('utilization', utilization), ]) + + +from . import utilization +class chassis(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for chassis components + """ + __slots__ = ('_path_helper', '_extmethods', '__utilization',) + + _yang_name = 'chassis' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis'] + + def _get_utilization(self): + """ + Getter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container) + + YANG Description: Utilization of the component. + """ + return self.__utilization + + def _set_utilization(self, v, load=False): + """ + Setter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilization is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilization() directly. + + YANG Description: Utilization of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilization must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__utilization = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilization(self): + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + utilization = __builtin__.property(_get_utilization, _set_utilization) + + + _pyangbind_elements = OrderedDict([('utilization', utilization), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a1bac9c98ca84bd2fcdb13e29b0419d0695a1be8 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import resources +class utilization(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis/utilization. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Utilization of the component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resources',) + + _yang_name = 'utilization' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization'] + + def _get_resources(self): + """ + Getter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container) + + YANG Description: Enclosing container for the resources in this component. + """ + return self.__resources + + def _set_resources(self, v, load=False): + """ + Setter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_resources is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resources() directly. + + YANG Description: Enclosing container for the resources in this component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resources must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__resources = t + if hasattr(self, '_set'): + self._set() + + def _unset_resources(self): + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + resources = __builtin__.property(_get_resources, _set_resources) + + + _pyangbind_elements = OrderedDict([('resources', resources), ]) + + +from . import resources +class utilization(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Utilization of the component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resources',) + + _yang_name = 'utilization' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization'] + + def _get_resources(self): + """ + Getter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container) + + YANG Description: Enclosing container for the resources in this component. + """ + return self.__resources + + def _set_resources(self, v, load=False): + """ + Setter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_resources is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resources() directly. + + YANG Description: Enclosing container for the resources in this component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resources must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__resources = t + if hasattr(self, '_set'): + self._set() + + def _unset_resources(self): + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + resources = __builtin__.property(_get_resources, _set_resources) + + + _pyangbind_elements = OrderedDict([('resources', resources), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..29d51abe1879b785d0eaefd71a2055f1e136e89c --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import resource +class resources(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the resources in this component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resource',) + + _yang_name = 'resources' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources'] + + def _get_resource(self): + """ + Getter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list) + + YANG Description: List of resources, keyed by resource name. + """ + return self.__resource + + def _set_resource(self, v, load=False): + """ + Setter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_resource is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resource() directly. + + YANG Description: List of resources, keyed by resource name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resource must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__resource = t + if hasattr(self, '_set'): + self._set() + + def _unset_resource(self): + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + resource = __builtin__.property(_get_resource, _set_resource) + + + _pyangbind_elements = OrderedDict([('resource', resource), ]) + + +from . import resource +class resources(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the resources in this component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resource',) + + _yang_name = 'resources' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources'] + + def _get_resource(self): + """ + Getter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list) + + YANG Description: List of resources, keyed by resource name. + """ + return self.__resource + + def _set_resource(self, v, load=False): + """ + Setter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_resource is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resource() directly. + + YANG Description: List of resources, keyed by resource name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resource must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__resource = t + if hasattr(self, '_set'): + self._set() + + def _unset_resource(self): + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + resource = __builtin__.property(_get_resource, _set_resource) + + + _pyangbind_elements = OrderedDict([('resource', resource), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ff0575f656886cc795b63d8f5c0020c03d0254c3 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class resource(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of resources, keyed by resource name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'resource' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref) + + YANG Description: References the resource name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the resource name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container) + + YANG Description: Configuration data for each resource. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container) + + YANG Description: Operational state data for each resource. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + +from . import config +from . import state +class resource(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of resources, keyed by resource name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'resource' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref) + + YANG Description: References the resource name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the resource name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container) + + YANG Description: Configuration data for each resource. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container) + + YANG Description: Operational state data for each resource. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a766d52ec6ab7a593be38d4f11fbbc16dc80eb81 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9c38f59397042e87fc192c24bdbf883ce8e6fc54 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py @@ -0,0 +1,686 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_used(self): + """ + Getter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64) + + YANG Description: Number of entries currently in use for the resource. + """ + return self.__used + + def _set_used(self, v, load=False): + """ + Setter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_used is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used() directly. + + YANG Description: Number of entries currently in use for the resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__used = t + if hasattr(self, '_set'): + self._set() + + def _unset_used(self): + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_committed(self): + """ + Getter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64) + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + return self.__committed + + def _set_committed(self, v, load=False): + """ + Setter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_committed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_committed() directly. + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """committed must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__committed = t + if hasattr(self, '_set'): + self._set() + + def _unset_committed(self): + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_free(self): + """ + Getter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64) + + YANG Description: Number of entries available to use. + """ + return self.__free + + def _set_free(self, v, load=False): + """ + Setter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_free is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_free() directly. + + YANG Description: Number of entries available to use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """free must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__free = t + if hasattr(self, '_set'): + self._set() + + def _unset_free(self): + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_max_limit(self): + """ + Getter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64) + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + return self.__max_limit + + def _set_max_limit(self, v, load=False): + """ + Setter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_limit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_limit() directly. + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_limit must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__max_limit = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_limit(self): + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_high_watermark(self): + """ + Getter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64) + + YANG Description: A watermark of highest number of entries used for this resource. + """ + return self.__high_watermark + + def _set_high_watermark(self, v, load=False): + """ + Setter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_high_watermark() directly. + + YANG Description: A watermark of highest number of entries used for this resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """high_watermark must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_high_watermark(self): + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_last_high_watermark(self): + """ + Getter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + + YANG Description: The time when the high-watermark was last updated + """ + return self.__last_high_watermark + + def _set_last_high_watermark(self, v, load=False): + """ + Setter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_high_watermark() directly. + + YANG Description: The time when the high-watermark was last updated + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_high_watermark(self): + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + name = __builtin__.property(_get_name) + used = __builtin__.property(_get_used) + committed = __builtin__.property(_get_committed) + free = __builtin__.property(_get_free) + max_limit = __builtin__.property(_get_max_limit) + high_watermark = __builtin__.property(_get_high_watermark) + last_high_watermark = __builtin__.property(_get_last_high_watermark) + + + _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ]) + + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_used(self): + """ + Getter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64) + + YANG Description: Number of entries currently in use for the resource. + """ + return self.__used + + def _set_used(self, v, load=False): + """ + Setter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_used is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used() directly. + + YANG Description: Number of entries currently in use for the resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__used = t + if hasattr(self, '_set'): + self._set() + + def _unset_used(self): + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_committed(self): + """ + Getter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64) + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + return self.__committed + + def _set_committed(self, v, load=False): + """ + Setter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_committed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_committed() directly. + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """committed must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__committed = t + if hasattr(self, '_set'): + self._set() + + def _unset_committed(self): + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_free(self): + """ + Getter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64) + + YANG Description: Number of entries available to use. + """ + return self.__free + + def _set_free(self, v, load=False): + """ + Setter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_free is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_free() directly. + + YANG Description: Number of entries available to use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """free must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__free = t + if hasattr(self, '_set'): + self._set() + + def _unset_free(self): + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_max_limit(self): + """ + Getter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64) + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + return self.__max_limit + + def _set_max_limit(self, v, load=False): + """ + Setter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_limit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_limit() directly. + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_limit must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__max_limit = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_limit(self): + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_high_watermark(self): + """ + Getter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64) + + YANG Description: A watermark of highest number of entries used for this resource. + """ + return self.__high_watermark + + def _set_high_watermark(self, v, load=False): + """ + Setter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_high_watermark() directly. + + YANG Description: A watermark of highest number of entries used for this resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """high_watermark must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_high_watermark(self): + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_last_high_watermark(self): + """ + Getter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + + YANG Description: The time when the high-watermark was last updated + """ + return self.__last_high_watermark + + def _set_last_high_watermark(self, v, load=False): + """ + Setter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_high_watermark() directly. + + YANG Description: The time when the high-watermark was last updated + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_high_watermark(self): + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + name = __builtin__.property(_get_name) + used = __builtin__.property(_get_used) + committed = __builtin__.property(_get_committed) + free = __builtin__.property(_get_free) + max_limit = __builtin__.property(_get_max_limit) + high_watermark = __builtin__.property(_get_high_watermark) + last_high_watermark = __builtin__.property(_get_last_high_watermark) + + + _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..05fc5b7959140a835f0cbeee106f326b689e072c --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/config/__init__.py @@ -0,0 +1,218 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each component + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/config/name (string) + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each component + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/config/name (string) + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py b/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7575a47edcbec0bded345e9bdb3a4ef2c18d6b45 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class controller_card(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/controller-card. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + _pyangbind_elements = {} + + + +class controller_card(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/controller-card. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for controller card components, i.e., for components +with type=CONTROLLER_CARD + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py b/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..06420eb73a3c14d5e991872eecd4cd68f4b726e2 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class cpu(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/cpu. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for cpu components + """ + _pyangbind_elements = {} + + + +class cpu(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/cpu. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for cpu components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py b/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b88c441d803837f34cfe270a482ddf6a1d9dd878 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class fabric(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/fabric. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for fabric components + """ + _pyangbind_elements = {} + + + +class fabric(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/fabric. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for fabric components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py b/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e1d3cd8498e89aa26235c0ba94d2aee418c27e70 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class fan(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/fan. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for fan components + """ + _pyangbind_elements = {} + + + +class fan(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/fan. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for fan components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a2f0ee8b82fa19dd322d3224de33942a050a6fa2 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import utilization +class integrated_circuit(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + __slots__ = ('_path_helper', '_extmethods', '__utilization',) + + _yang_name = 'integrated-circuit' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit'] + + def _get_utilization(self): + """ + Getter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container) + + YANG Description: Utilization of the component. + """ + return self.__utilization + + def _set_utilization(self, v, load=False): + """ + Setter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilization is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilization() directly. + + YANG Description: Utilization of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilization must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__utilization = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilization(self): + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + utilization = __builtin__.property(_get_utilization, _set_utilization) + + + _pyangbind_elements = OrderedDict([('utilization', utilization), ]) + + +from . import utilization +class integrated_circuit(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for chip components, such as ASIC, NPUs, etc. + """ + __slots__ = ('_path_helper', '_extmethods', '__utilization',) + + _yang_name = 'integrated-circuit' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit'] + + def _get_utilization(self): + """ + Getter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container) + + YANG Description: Utilization of the component. + """ + return self.__utilization + + def _set_utilization(self, v, load=False): + """ + Setter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilization is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilization() directly. + + YANG Description: Utilization of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilization must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__utilization = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilization(self): + self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + utilization = __builtin__.property(_get_utilization, _set_utilization) + + + _pyangbind_elements = OrderedDict([('utilization', utilization), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..dc2ebc87c9230ab64955cec0a4bfcf752b97acc0 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import resources +class utilization(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Utilization of the component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resources',) + + _yang_name = 'utilization' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization'] + + def _get_resources(self): + """ + Getter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container) + + YANG Description: Enclosing container for the resources in this component. + """ + return self.__resources + + def _set_resources(self, v, load=False): + """ + Setter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_resources is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resources() directly. + + YANG Description: Enclosing container for the resources in this component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resources must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__resources = t + if hasattr(self, '_set'): + self._set() + + def _unset_resources(self): + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + resources = __builtin__.property(_get_resources, _set_resources) + + + _pyangbind_elements = OrderedDict([('resources', resources), ]) + + +from . import resources +class utilization(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Utilization of the component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resources',) + + _yang_name = 'utilization' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization'] + + def _get_resources(self): + """ + Getter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container) + + YANG Description: Enclosing container for the resources in this component. + """ + return self.__resources + + def _set_resources(self, v, load=False): + """ + Setter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_resources is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resources() directly. + + YANG Description: Enclosing container for the resources in this component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resources must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__resources = t + if hasattr(self, '_set'): + self._set() + + def _unset_resources(self): + self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + resources = __builtin__.property(_get_resources, _set_resources) + + + _pyangbind_elements = OrderedDict([('resources', resources), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f0833cc9b6254d4dab2a73303835af935316be07 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import resource +class resources(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the resources in this component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resource',) + + _yang_name = 'resources' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources'] + + def _get_resource(self): + """ + Getter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list) + + YANG Description: List of resources, keyed by resource name. + """ + return self.__resource + + def _set_resource(self, v, load=False): + """ + Setter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_resource is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resource() directly. + + YANG Description: List of resources, keyed by resource name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resource must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__resource = t + if hasattr(self, '_set'): + self._set() + + def _unset_resource(self): + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + resource = __builtin__.property(_get_resource, _set_resource) + + + _pyangbind_elements = OrderedDict([('resource', resource), ]) + + +from . import resource +class resources(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the resources in this component. + """ + __slots__ = ('_path_helper', '_extmethods', '__resource',) + + _yang_name = 'resources' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources'] + + def _get_resource(self): + """ + Getter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list) + + YANG Description: List of resources, keyed by resource name. + """ + return self.__resource + + def _set_resource(self, v, load=False): + """ + Setter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_resource is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_resource() directly. + + YANG Description: List of resources, keyed by resource name. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """resource must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__resource = t + if hasattr(self, '_set'): + self._set() + + def _unset_resource(self): + self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + resource = __builtin__.property(_get_resource, _set_resource) + + + _pyangbind_elements = OrderedDict([('resource', resource), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..fe54dd37de1e3c4637206e887b07286d611d1e1c --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class resource(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of resources, keyed by resource name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'resource' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref) + + YANG Description: References the resource name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the resource name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container) + + YANG Description: Configuration data for each resource. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container) + + YANG Description: Operational state data for each resource. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + +from . import config +from . import state +class resource(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of resources, keyed by resource name. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'resource' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref) + + YANG Description: References the resource name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the resource name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container) + + YANG Description: Configuration data for each resource. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container) + + YANG Description: Operational state data for each resource. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..dbc0dc799a609085f77f18a623042a7b1ca556ce --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e4cb2cec886fe113f1fd595c386eef65e084374f --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py @@ -0,0 +1,686 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_used(self): + """ + Getter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64) + + YANG Description: Number of entries currently in use for the resource. + """ + return self.__used + + def _set_used(self, v, load=False): + """ + Setter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_used is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used() directly. + + YANG Description: Number of entries currently in use for the resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__used = t + if hasattr(self, '_set'): + self._set() + + def _unset_used(self): + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_committed(self): + """ + Getter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64) + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + return self.__committed + + def _set_committed(self, v, load=False): + """ + Setter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_committed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_committed() directly. + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """committed must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__committed = t + if hasattr(self, '_set'): + self._set() + + def _unset_committed(self): + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_free(self): + """ + Getter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64) + + YANG Description: Number of entries available to use. + """ + return self.__free + + def _set_free(self, v, load=False): + """ + Setter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_free is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_free() directly. + + YANG Description: Number of entries available to use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """free must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__free = t + if hasattr(self, '_set'): + self._set() + + def _unset_free(self): + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_max_limit(self): + """ + Getter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64) + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + return self.__max_limit + + def _set_max_limit(self, v, load=False): + """ + Setter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_limit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_limit() directly. + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_limit must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__max_limit = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_limit(self): + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_high_watermark(self): + """ + Getter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64) + + YANG Description: A watermark of highest number of entries used for this resource. + """ + return self.__high_watermark + + def _set_high_watermark(self, v, load=False): + """ + Setter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_high_watermark() directly. + + YANG Description: A watermark of highest number of entries used for this resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """high_watermark must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_high_watermark(self): + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_last_high_watermark(self): + """ + Getter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + + YANG Description: The time when the high-watermark was last updated + """ + return self.__last_high_watermark + + def _set_last_high_watermark(self, v, load=False): + """ + Setter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_high_watermark() directly. + + YANG Description: The time when the high-watermark was last updated + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_high_watermark(self): + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + name = __builtin__.property(_get_name) + used = __builtin__.property(_get_used) + committed = __builtin__.property(_get_committed) + free = __builtin__.property(_get_free) + max_limit = __builtin__.property(_get_max_limit) + high_watermark = __builtin__.property(_get_high_watermark) + last_high_watermark = __builtin__.property(_get_last_high_watermark) + + + _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ]) + + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each resource. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string) + + YANG Description: Resource name within the component. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Resource name within the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_used(self): + """ + Getter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64) + + YANG Description: Number of entries currently in use for the resource. + """ + return self.__used + + def _set_used(self, v, load=False): + """ + Setter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_used is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used() directly. + + YANG Description: Number of entries currently in use for the resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__used = t + if hasattr(self, '_set'): + self._set() + + def _unset_used(self): + self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_committed(self): + """ + Getter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64) + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + return self.__committed + + def _set_committed(self, v, load=False): + """ + Setter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_committed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_committed() directly. + + YANG Description: Number of entries currently reserved for this resource. This is only +relevant to tables which allocate a block of resource for a given +feature. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """committed must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__committed = t + if hasattr(self, '_set'): + self._set() + + def _unset_committed(self): + self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_free(self): + """ + Getter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64) + + YANG Description: Number of entries available to use. + """ + return self.__free + + def _set_free(self, v, load=False): + """ + Setter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_free is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_free() directly. + + YANG Description: Number of entries available to use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """free must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__free = t + if hasattr(self, '_set'): + self._set() + + def _unset_free(self): + self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_max_limit(self): + """ + Getter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64) + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + return self.__max_limit + + def _set_max_limit(self, v, load=False): + """ + Setter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_limit is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_limit() directly. + + YANG Description: Maximum number of entries available for the resource. The value +is the theoretical maximum resource utilization possible. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_limit must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__max_limit = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_limit(self): + self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_high_watermark(self): + """ + Getter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64) + + YANG Description: A watermark of highest number of entries used for this resource. + """ + return self.__high_watermark + + def _set_high_watermark(self, v, load=False): + """ + Setter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_high_watermark() directly. + + YANG Description: A watermark of highest number of entries used for this resource. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """high_watermark must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_high_watermark(self): + self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_last_high_watermark(self): + """ + Getter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + + YANG Description: The time when the high-watermark was last updated + """ + return self.__last_high_watermark + + def _set_last_high_watermark(self, v, load=False): + """ + Setter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_high_watermark is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_high_watermark() directly. + + YANG Description: The time when the high-watermark was last updated + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_high_watermark = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_high_watermark(self): + self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + name = __builtin__.property(_get_name) + used = __builtin__.property(_get_used) + committed = __builtin__.property(_get_committed) + free = __builtin__.property(_get_free) + max_limit = __builtin__.property(_get_max_limit) + high_watermark = __builtin__.property(_get_high_watermark) + last_high_watermark = __builtin__.property(_get_last_high_watermark) + + + _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..74542ccd89fc359229b55c7fbb2f6d6701d0fd1a --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import breakout_mode +class port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for physical port components + """ + __slots__ = ('_path_helper', '_extmethods', '__breakout_mode',) + + _yang_name = 'port' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port'] + + def _get_breakout_mode(self): + """ + Getter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container) + + YANG Description: Top-level container for port breakout-mode data. + """ + return self.__breakout_mode + + def _set_breakout_mode(self, v, load=False): + """ + Setter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_mode() directly. + + YANG Description: Top-level container for port breakout-mode data. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_mode must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__breakout_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_mode(self): + self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + breakout_mode = __builtin__.property(_get_breakout_mode, _set_breakout_mode) + + + _pyangbind_elements = OrderedDict([('breakout_mode', breakout_mode), ]) + + +from . import breakout_mode +class port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for physical port components + """ + __slots__ = ('_path_helper', '_extmethods', '__breakout_mode',) + + _yang_name = 'port' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port'] + + def _get_breakout_mode(self): + """ + Getter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container) + + YANG Description: Top-level container for port breakout-mode data. + """ + return self.__breakout_mode + + def _set_breakout_mode(self, v, load=False): + """ + Setter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_mode() directly. + + YANG Description: Top-level container for port breakout-mode data. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_mode must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__breakout_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_mode(self): + self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + breakout_mode = __builtin__.property(_get_breakout_mode, _set_breakout_mode) + + + _pyangbind_elements = OrderedDict([('breakout_mode', breakout_mode), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..363988ab6a25e9f8e5928b71e5004f95a6dd49f6 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py @@ -0,0 +1,300 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import groups +class breakout_mode(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top-level container for port breakout-mode data. + """ + __slots__ = ('_path_helper', '_extmethods', '__groups',) + + _yang_name = 'breakout-mode' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode'] + + def _get_groups(self): + """ + Getter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container) + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + return self.__groups + + def _set_groups(self, v, load=False): + """ + Setter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_groups is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_groups() directly. + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """groups must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__groups = t + if hasattr(self, '_set'): + self._set() + + def _unset_groups(self): + self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + groups = __builtin__.property(_get_groups, _set_groups) + + + _pyangbind_elements = OrderedDict([('groups', groups), ]) + + +from . import groups +class breakout_mode(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top-level container for port breakout-mode data. + """ + __slots__ = ('_path_helper', '_extmethods', '__groups',) + + _yang_name = 'breakout-mode' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode'] + + def _get_groups(self): + """ + Getter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container) + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + return self.__groups + + def _set_groups(self, v, load=False): + """ + Setter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_groups is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_groups() directly. + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """groups must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__groups = t + if hasattr(self, '_set'): + self._set() + + def _unset_groups(self): + self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + groups = __builtin__.property(_get_groups, _set_groups) + + + _pyangbind_elements = OrderedDict([('groups', groups), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..523eb15138bed339e2361a968fc3701cdbfb2774 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py @@ -0,0 +1,254 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import group +class groups(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + __slots__ = ('_path_helper', '_extmethods', '__group',) + + _yang_name = 'groups' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups'] + + def _get_group(self): + """ + Getter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list) + + YANG Description: List of breakout groups. + """ + return self.__group + + def _set_group(self, v, load=False): + """ + Setter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_group is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_group() directly. + + YANG Description: List of breakout groups. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """group must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)""", + }) + + self.__group = t + if hasattr(self, '_set'): + self._set() + + def _unset_group(self): + self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + + group = __builtin__.property(_get_group, _set_group) + + + _pyangbind_elements = OrderedDict([('group', group), ]) + + +from . import group +class groups(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top level container for breakout groups data. + +When a device has the capability to break a port into +interfaces of different speeds and different number of +physical channels, it can breakout a 400G OSFP port with +8 physical channels (with support for 25G NRZ, 50G PAM4 +and 100G PAM4) in the following configuration: + +100G + 100G + 200G -> 1 interface with 2 physical channels +and 1 interface with 4 physical channels and 1 interface with +2 physical channels. With this configuration the interface in +1st breakout group would use 50G PAM4 modulation, interface +in 2nd breakout group would use 25G NRZ modulation and the +interface in 3rd breakout group would use 100G PAM4 modulation +This configuration would result in 3 entries in the breakout +groups list. + +When a device does not have the capability to break a port +into interfaces of different speeds and different number of +physical channels, it would breakout a 400G OSFP port with +8 physical channels in the following configuration: + +50G -> 8 interfaces with 1 physical channel each, this would +result in 1 entry in the breakout groups list. + """ + __slots__ = ('_path_helper', '_extmethods', '__group',) + + _yang_name = 'groups' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups'] + + def _get_group(self): + """ + Getter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list) + + YANG Description: List of breakout groups. + """ + return self.__group + + def _set_group(self, v, load=False): + """ + Setter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_group is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_group() directly. + + YANG Description: List of breakout groups. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """group must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)""", + }) + + self.__group = t + if hasattr(self, '_set'): + self._set() + + def _unset_group(self): + self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True) + + group = __builtin__.property(_get_group, _set_group) + + + _pyangbind_elements = OrderedDict([('group', group), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..82104e792886041d3ef76eebd8a47bd8a8e17bf5 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class group(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of breakout groups. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',) + + _yang_name = 'group' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref) + + YANG Description: Index of the breakout group entry in the breakout groups list. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Index of the breakout group entry in the breakout groups list. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container) + + YANG Description: Configuration data for breakout group. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container) + + YANG Description: Operational state data for breakout group. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ]) + + +from . import config +from . import state +class group(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of breakout groups. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',) + + _yang_name = 'group' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref) + + YANG Description: Index of the breakout group entry in the breakout groups list. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Index of the breakout group entry in the breakout groups list. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container) + + YANG Description: Configuration data for breakout group. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container) + + YANG Description: Operational state data for breakout group. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5a989534cd1f8272ee971533e2e4cc97e3b4fffc --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py @@ -0,0 +1,464 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for breakout group. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'config'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8) + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + + def _get_num_breakouts(self): + """ + Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8) + + YANG Description: Sets the number of interfaces using this breakout group. + """ + return self.__num_breakouts + + def _set_num_breakouts(self, v, load=False): + """ + Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_breakouts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_breakouts() directly. + + YANG Description: Sets the number of interfaces using this breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_breakouts must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__num_breakouts = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_breakouts(self): + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + + def _get_breakout_speed(self): + """ + Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref) + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + return self.__breakout_speed + + def _set_breakout_speed(self, v, load=False): + """ + Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_speed() directly. + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform-port:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)""", + }) + + self.__breakout_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_speed(self): + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + + + def _get_num_physical_channels(self): + """ + Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8) + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + return self.__num_physical_channels + + def _set_num_physical_channels(self, v, load=False): + """ + Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_physical_channels is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_physical_channels() directly. + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_physical_channels must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__num_physical_channels = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_physical_channels(self): + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + num_breakouts = __builtin__.property(_get_num_breakouts, _set_num_breakouts) + breakout_speed = __builtin__.property(_get_breakout_speed, _set_breakout_speed) + num_physical_channels = __builtin__.property(_get_num_physical_channels, _set_num_physical_channels) + + + _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for breakout group. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'config'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8) + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + + def _get_num_breakouts(self): + """ + Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8) + + YANG Description: Sets the number of interfaces using this breakout group. + """ + return self.__num_breakouts + + def _set_num_breakouts(self, v, load=False): + """ + Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_breakouts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_breakouts() directly. + + YANG Description: Sets the number of interfaces using this breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_breakouts must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__num_breakouts = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_breakouts(self): + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + + def _get_breakout_speed(self): + """ + Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref) + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + return self.__breakout_speed + + def _set_breakout_speed(self, v, load=False): + """ + Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_speed() directly. + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform-port:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)""", + }) + + self.__breakout_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_speed(self): + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True) + + + def _get_num_physical_channels(self): + """ + Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8) + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + return self.__num_physical_channels + + def _set_num_physical_channels(self, v, load=False): + """ + Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_physical_channels is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_physical_channels() directly. + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_physical_channels must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""", + }) + + self.__num_physical_channels = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_physical_channels(self): + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + num_breakouts = __builtin__.property(_get_num_breakouts, _set_num_breakouts) + breakout_speed = __builtin__.property(_get_breakout_speed, _set_breakout_speed) + num_physical_channels = __builtin__.property(_get_num_physical_channels, _set_num_physical_channels) + + + _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..71c63f44b61ef5b032652a2d43928d96c83a3a29 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py @@ -0,0 +1,464 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for breakout group. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'state'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8) + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + + def _get_num_breakouts(self): + """ + Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8) + + YANG Description: Sets the number of interfaces using this breakout group. + """ + return self.__num_breakouts + + def _set_num_breakouts(self, v, load=False): + """ + Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_breakouts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_breakouts() directly. + + YANG Description: Sets the number of interfaces using this breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_breakouts must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__num_breakouts = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_breakouts(self): + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + + def _get_breakout_speed(self): + """ + Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref) + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + return self.__breakout_speed + + def _set_breakout_speed(self, v, load=False): + """ + Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_speed() directly. + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform-port:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)""", + }) + + self.__breakout_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_speed(self): + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + + + def _get_num_physical_channels(self): + """ + Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8) + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + return self.__num_physical_channels + + def _set_num_physical_channels(self, v, load=False): + """ + Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_physical_channels is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_physical_channels() directly. + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_physical_channels must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__num_physical_channels = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_physical_channels(self): + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + index = __builtin__.property(_get_index) + num_breakouts = __builtin__.property(_get_num_breakouts) + breakout_speed = __builtin__.property(_get_breakout_speed) + num_physical_channels = __builtin__.property(_get_num_physical_channels) + + + _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ]) + + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for breakout group. + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'state'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8) + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: Each index specifies breakouts that are identical in +terms of speed and the number of physical channels. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + + def _get_num_breakouts(self): + """ + Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8) + + YANG Description: Sets the number of interfaces using this breakout group. + """ + return self.__num_breakouts + + def _set_num_breakouts(self, v, load=False): + """ + Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_breakouts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_breakouts() directly. + + YANG Description: Sets the number of interfaces using this breakout group. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_breakouts must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__num_breakouts = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_breakouts(self): + self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + + def _get_breakout_speed(self): + """ + Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref) + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + return self.__breakout_speed + + def _set_breakout_speed(self, v, load=False): + """ + Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_breakout_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_breakout_speed() directly. + + YANG Description: Speed of interfaces in this breakout group, supported +values are defined by the ETHERNET_SPEED identity. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """breakout_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform-port:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)""", + }) + + self.__breakout_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_breakout_speed(self): + self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False) + + + def _get_num_physical_channels(self): + """ + Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8) + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + return self.__num_physical_channels + + def _set_num_physical_channels(self, v, load=False): + """ + Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8) + If this variable is read-only (config: false) in the + source YANG file, then _set_num_physical_channels is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_num_physical_channels() directly. + + YANG Description: Sets the number of lanes or physical channels assigned +to the interfaces in this breakout group. This leaf need +not be set if there is only one breakout group where all +the interfaces are of equal speed and have equal number +of physical channels + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """num_physical_channels must be of a type compatible with uint8""", + 'defined-type': "uint8", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""", + }) + + self.__num_physical_channels = t + if hasattr(self, '_set'): + self._set() + + def _unset_num_physical_channels(self): + self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False) + + index = __builtin__.property(_get_index) + num_breakouts = __builtin__.property(_get_num_breakouts) + breakout_speed = __builtin__.property(_get_breakout_speed) + num_physical_channels = __builtin__.property(_get_num_physical_channels) + + + _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py b/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..08a05b98f2d93e26ac391b1cd2c91bcec671348a --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class power_supply(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/power-supply. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for power supply components + """ + _pyangbind_elements = {} + + + +class power_supply(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/power-supply. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for power supply components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4605df88f39390969e0932a0afac4f43ecd8ba9b --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import property_ +class properties(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/properties. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container + """ + __slots__ = ('_path_helper', '_extmethods', '__property_',) + + _yang_name = 'properties' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties'] + + def _get_property_(self): + """ + Getter method for property_, mapped from YANG variable /components/component/properties/property (list) + + YANG Description: List of system properties for the component + """ + return self.__property_ + + def _set_property_(self, v, load=False): + """ + Setter method for property_, mapped from YANG variable /components/component/properties/property (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_property_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_property_() directly. + + YANG Description: List of system properties for the component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """property_ must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__property_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_property_(self): + self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + property_ = __builtin__.property(_get_property_, _set_property_) + + + _pyangbind_elements = OrderedDict([('property_', property_), ]) + + +from . import property_ +class properties(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/properties. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container + """ + __slots__ = ('_path_helper', '_extmethods', '__property_',) + + _yang_name = 'properties' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties'] + + def _get_property_(self): + """ + Getter method for property_, mapped from YANG variable /components/component/properties/property (list) + + YANG Description: List of system properties for the component + """ + return self.__property_ + + def _set_property_(self, v, load=False): + """ + Setter method for property_, mapped from YANG variable /components/component/properties/property (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_property_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_property_() directly. + + YANG Description: List of system properties for the component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """property_ must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__property_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_property_(self): + self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + property_ = __builtin__.property(_get_property_, _set_property_) + + + _pyangbind_elements = OrderedDict([('property_', property_), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9e49ab5a26b56c05f1a8db30528d46bc66c17ed8 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class property_(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/properties/property. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of system properties for the component + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'property' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/name (leafref) + + YANG Description: Reference to the property name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the property name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/properties/property/config (container) + + YANG Description: Configuration data for each property + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/properties/property/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each property + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/properties/property/state (container) + + YANG Description: Operational state data for each property + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/properties/property/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each property + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + +from . import config +from . import state +class property_(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/properties/property. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of system properties for the component + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'property' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/name (leafref) + + YANG Description: Reference to the property name. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the property name. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/properties/property/config (container) + + YANG Description: Configuration data for each property + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/properties/property/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for each property + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/properties/property/state (container) + + YANG Description: Operational state data for each property + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/properties/property/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for each property + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6eaa7c03a7e44c436f5b85ad31cce5b1b57a6438 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py @@ -0,0 +1,296 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/properties/property/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each property + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__value',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/config/name (string) + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + + def _get_value(self): + """ + Getter method for value, mapped from YANG variable /components/component/properties/property/config/value (union) + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + return self.__value + + def _set_value(self, v, load=False): + """ + Setter method for value, mapped from YANG variable /components/component/properties/property/config/value (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_value is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_value() directly. + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """value must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)""", + }) + + self.__value = t + if hasattr(self, '_set'): + self._set() + + def _unset_value(self): + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + value = __builtin__.property(_get_value, _set_value) + + + _pyangbind_elements = OrderedDict([('name', name), ('value', value), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/properties/property/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for each property + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__value',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/config/name (string) + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True) + + + def _get_value(self): + """ + Getter method for value, mapped from YANG variable /components/component/properties/property/config/value (union) + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + return self.__value + + def _set_value(self, v, load=False): + """ + Setter method for value, mapped from YANG variable /components/component/properties/property/config/value (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_value is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_value() directly. + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """value must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)""", + }) + + self.__value = t + if hasattr(self, '_set'): + self._set() + + def _unset_value(self): + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + value = __builtin__.property(_get_value, _set_value) + + + _pyangbind_elements = OrderedDict([('name', name), ('value', value), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4d50a0520390ca70e3bffbe75bc4290912c88e2a --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py @@ -0,0 +1,374 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/properties/property/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each property + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__value','__configurable',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/state/name (string) + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_value(self): + """ + Getter method for value, mapped from YANG variable /components/component/properties/property/state/value (union) + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + return self.__value + + def _set_value(self, v, load=False): + """ + Setter method for value, mapped from YANG variable /components/component/properties/property/state/value (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_value is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_value() directly. + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """value must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""", + }) + + self.__value = t + if hasattr(self, '_set'): + self._set() + + def _unset_value(self): + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + + + def _get_configurable(self): + """ + Getter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean) + + YANG Description: Indication whether the property is user-configurable + """ + return self.__configurable + + def _set_configurable(self, v, load=False): + """ + Setter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_configurable is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_configurable() directly. + + YANG Description: Indication whether the property is user-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """configurable must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__configurable = t + if hasattr(self, '_set'): + self._set() + + def _unset_configurable(self): + self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + name = __builtin__.property(_get_name) + value = __builtin__.property(_get_value) + configurable = __builtin__.property(_get_configurable) + + + _pyangbind_elements = OrderedDict([('name', name), ('value', value), ('configurable', configurable), ]) + + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/properties/property/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each property + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__value','__configurable',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'properties', 'property', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/properties/property/state/name (string) + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/properties/property/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: System-supplied name of the property -- this is typically +non-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_value(self): + """ + Getter method for value, mapped from YANG variable /components/component/properties/property/state/value (union) + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + return self.__value + + def _set_value(self, v, load=False): + """ + Setter method for value, mapped from YANG variable /components/component/properties/property/state/value (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_value is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_value() directly. + + YANG Description: Property values can take on a variety of types. Signed and +unsigned integer types may be provided in smaller sizes, +e.g., int8, uint16, etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """value must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""", + }) + + self.__value = t + if hasattr(self, '_set'): + self._set() + + def _unset_value(self): + self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + + + def _get_configurable(self): + """ + Getter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean) + + YANG Description: Indication whether the property is user-configurable + """ + return self.__configurable + + def _set_configurable(self, v, load=False): + """ + Setter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_configurable is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_configurable() directly. + + YANG Description: Indication whether the property is user-configurable + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """configurable must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__configurable = t + if hasattr(self, '_set'): + self._set() + + def _unset_configurable(self): + self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + name = __builtin__.property(_get_name) + value = __builtin__.property(_get_value) + configurable = __builtin__.property(_get_configurable) + + + _pyangbind_elements = OrderedDict([('name', name), ('value', value), ('configurable', configurable), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py b/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3fa4f2989b255366b0cfe148f1a31ec6906ec0af --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class software_module(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/software-module. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + _pyangbind_elements = {} + + + +class software_module(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/software-module. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for software module components, i.e., for components +with type=SOFTWARE_MODULE + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..462352e048ab1174f602de5bc9ff24445cdc3da9 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/__init__.py @@ -0,0 +1,2528 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import last_switchover_reason +from . import temperature +from . import memory +from . import pcie +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each component + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__type','__id','__location','__description','__mfg_name','__mfg_date','__hardware_version','__firmware_version','__software_version','__serial_no','__part_no','__clei_code','__removable','__oper_status','__empty','__parent','__redundant_role','__last_switchover_reason','__last_switchover_time','__last_reboot_reason','__last_reboot_time','__switchover_ready','__temperature','__memory','__allocated_power','__used_power','__pcie',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/state/name (string) + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_type(self): + """ + Getter method for type, mapped from YANG variable /components/component/state/type (union) + + YANG Description: Type of component as identified by the system + """ + return self.__type + + def _set_type(self, v, load=False): + """ + Setter method for type, mapped from YANG variable /components/component/state/type (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_type is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_type() directly. + + YANG Description: Type of component as identified by the system + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """type must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""", + }) + + self.__type = t + if hasattr(self, '_set'): + self._set() + + def _unset_type(self): + self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + + + def _get_id(self): + """ + Getter method for id, mapped from YANG variable /components/component/state/id (string) + + YANG Description: Unique identifier assigned by the system for the +component + """ + return self.__id + + def _set_id(self, v, load=False): + """ + Setter method for id, mapped from YANG variable /components/component/state/id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_id() directly. + + YANG Description: Unique identifier assigned by the system for the +component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__id = t + if hasattr(self, '_set'): + self._set() + + def _unset_id(self): + self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_location(self): + """ + Getter method for location, mapped from YANG variable /components/component/state/location (string) + + YANG Description: System-supplied description of the location of the +component within the system. This could be a bay position, +slot number, socket location, etc. For component types that +have an explicit slot-id attribute, such as linecards, the +system should populate the more specific slot-id. + """ + return self.__location + + def _set_location(self, v, load=False): + """ + Setter method for location, mapped from YANG variable /components/component/state/location (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_location is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_location() directly. + + YANG Description: System-supplied description of the location of the +component within the system. This could be a bay position, +slot number, socket location, etc. For component types that +have an explicit slot-id attribute, such as linecards, the +system should populate the more specific slot-id. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """location must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__location = t + if hasattr(self, '_set'): + self._set() + + def _unset_location(self): + self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /components/component/state/description (string) + + YANG Description: System-supplied description of the component + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /components/component/state/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: System-supplied description of the component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_mfg_name(self): + """ + Getter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string) + + YANG Description: System-supplied identifier for the manufacturer of the +component. This data is particularly useful when a +component manufacturer is different than the overall +device vendor. + """ + return self.__mfg_name + + def _set_mfg_name(self, v, load=False): + """ + Setter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_mfg_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mfg_name() directly. + + YANG Description: System-supplied identifier for the manufacturer of the +component. This data is particularly useful when a +component manufacturer is different than the overall +device vendor. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mfg_name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__mfg_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_mfg_name(self): + self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_mfg_date(self): + """ + Getter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date) + + YANG Description: System-supplied representation of the component's +manufacturing date. + """ + return self.__mfg_date + + def _set_mfg_date(self, v, load=False): + """ + Setter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date) + If this variable is read-only (config: false) in the + source YANG file, then _set_mfg_date is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mfg_date() directly. + + YANG Description: System-supplied representation of the component's +manufacturing date. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mfg_date must be of a type compatible with oc-yang:date""", + 'defined-type': "oc-yang:date", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)""", + }) + + self.__mfg_date = t + if hasattr(self, '_set'): + self._set() + + def _unset_mfg_date(self): + self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + + + def _get_hardware_version(self): + """ + Getter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string) + + YANG Description: For hardware components, this is the hardware revision of +the component. + """ + return self.__hardware_version + + def _set_hardware_version(self, v, load=False): + """ + Setter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_hardware_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hardware_version() directly. + + YANG Description: For hardware components, this is the hardware revision of +the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hardware_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__hardware_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_hardware_version(self): + self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_firmware_version(self): + """ + Getter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string) + + YANG Description: For hardware components, this is the version of associated +firmware that is running on the component, if applicable. + """ + return self.__firmware_version + + def _set_firmware_version(self, v, load=False): + """ + Setter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_firmware_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_firmware_version() directly. + + YANG Description: For hardware components, this is the version of associated +firmware that is running on the component, if applicable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """firmware_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__firmware_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_firmware_version(self): + self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_software_version(self): + """ + Getter method for software_version, mapped from YANG variable /components/component/state/software_version (string) + + YANG Description: For software components such as operating system or other +software module, this is the version of the currently +running software. + """ + return self.__software_version + + def _set_software_version(self, v, load=False): + """ + Setter method for software_version, mapped from YANG variable /components/component/state/software_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_software_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_software_version() directly. + + YANG Description: For software components such as operating system or other +software module, this is the version of the currently +running software. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """software_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__software_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_software_version(self): + self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_serial_no(self): + """ + Getter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string) + + YANG Description: System-assigned serial number of the component. + """ + return self.__serial_no + + def _set_serial_no(self, v, load=False): + """ + Setter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_serial_no is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_serial_no() directly. + + YANG Description: System-assigned serial number of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """serial_no must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__serial_no = t + if hasattr(self, '_set'): + self._set() + + def _unset_serial_no(self): + self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_part_no(self): + """ + Getter method for part_no, mapped from YANG variable /components/component/state/part_no (string) + + YANG Description: System-assigned part number for the component. This should +be present in particular if the component is also an FRU +(field replaceable unit) + """ + return self.__part_no + + def _set_part_no(self, v, load=False): + """ + Setter method for part_no, mapped from YANG variable /components/component/state/part_no (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_part_no is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_part_no() directly. + + YANG Description: System-assigned part number for the component. This should +be present in particular if the component is also an FRU +(field replaceable unit) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """part_no must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__part_no = t + if hasattr(self, '_set'): + self._set() + + def _unset_part_no(self): + self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_clei_code(self): + """ + Getter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string) + + YANG Description: Common Language Equipment Identifier (CLEI) code of the +component. This should be present in particular if the +component is also an FRU (field replaceable unit) + """ + return self.__clei_code + + def _set_clei_code(self, v, load=False): + """ + Setter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_clei_code is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_clei_code() directly. + + YANG Description: Common Language Equipment Identifier (CLEI) code of the +component. This should be present in particular if the +component is also an FRU (field replaceable unit) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """clei_code must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__clei_code = t + if hasattr(self, '_set'): + self._set() + + def _unset_clei_code(self): + self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_removable(self): + """ + Getter method for removable, mapped from YANG variable /components/component/state/removable (boolean) + + YANG Description: If true, this component is removable or is a field +replaceable unit + """ + return self.__removable + + def _set_removable(self, v, load=False): + """ + Setter method for removable, mapped from YANG variable /components/component/state/removable (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_removable is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_removable() directly. + + YANG Description: If true, this component is removable or is a field +replaceable unit + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """removable must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__removable = t + if hasattr(self, '_set'): + self._set() + + def _unset_removable(self): + self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_oper_status(self): + """ + Getter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref) + + YANG Description: If applicable, this reports the current operational status +of the component. + """ + return self.__oper_status + + def _set_oper_status(self, v, load=False): + """ + Setter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_oper_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_oper_status() directly. + + YANG Description: If applicable, this reports the current operational status +of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """oper_status must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__oper_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_oper_status(self): + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + + def _get_empty(self): + """ + Getter method for empty, mapped from YANG variable /components/component/state/empty (boolean) + + YANG Description: The empty leaf may be used by the device to indicate that a +component position exists but is not populated. Using this +flag, it is possible for the management system to learn how +many positions are available (e.g., occupied vs. empty +linecard slots in a chassis). + """ + return self.__empty + + def _set_empty(self, v, load=False): + """ + Setter method for empty, mapped from YANG variable /components/component/state/empty (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_empty is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_empty() directly. + + YANG Description: The empty leaf may be used by the device to indicate that a +component position exists but is not populated. Using this +flag, it is possible for the management system to learn how +many positions are available (e.g., occupied vs. empty +linecard slots in a chassis). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """empty must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__empty = t + if hasattr(self, '_set'): + self._set() + + def _unset_empty(self): + self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_parent(self): + """ + Getter method for parent, mapped from YANG variable /components/component/state/parent (leafref) + + YANG Description: Reference to the name of the parent component. Note that +this reference must be kept synchronized with the +corresponding subcomponent reference from the parent +component. + """ + return self.__parent + + def _set_parent(self, v, load=False): + """ + Setter method for parent, mapped from YANG variable /components/component/state/parent (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_parent is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_parent() directly. + + YANG Description: Reference to the name of the parent component. Note that +this reference must be kept synchronized with the +corresponding subcomponent reference from the parent +component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """parent must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""", + }) + + self.__parent = t + if hasattr(self, '_set'): + self._set() + + def _unset_parent(self): + self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + + def _get_redundant_role(self): + """ + Getter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the role of the component. + """ + return self.__redundant_role + + def _set_redundant_role(self, v, load=False): + """ + Setter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role) + If this variable is read-only (config: false) in the + source YANG file, then _set_redundant_role is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_redundant_role() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the role of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """redundant_role must be of a type compatible with oc-platform-types:component-redundant-role""", + 'defined-type': "oc-platform-types:component-redundant-role", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)""", + }) + + self.__redundant_role = t + if hasattr(self, '_set'): + self._set() + + def _unset_redundant_role(self): + self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + + + def _get_last_switchover_reason(self): + """ + Getter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + return self.__last_switchover_reason + + def _set_last_switchover_reason(self, v, load=False): + """ + Setter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_switchover_reason is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_switchover_reason() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_switchover_reason must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__last_switchover_reason = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_switchover_reason(self): + self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_last_switchover_time(self): + """ + Getter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as +secondary), this reports the time of the last change of +the component's role. The value is the timestamp in +nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_switchover_time + + def _set_last_switchover_time(self, v, load=False): + """ + Setter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_switchover_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_switchover_time() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as +secondary), this reports the time of the last change of +the component's role. The value is the timestamp in +nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_switchover_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_switchover_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_switchover_time(self): + self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_last_reboot_reason(self): + """ + Getter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref) + + YANG Description: This reports the reason of the last reboot of the component. + """ + return self.__last_reboot_reason + + def _set_last_reboot_reason(self, v, load=False): + """ + Setter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_reboot_reason is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_reboot_reason() directly. + + YANG Description: This reports the reason of the last reboot of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_reboot_reason must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__last_reboot_reason = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_reboot_reason(self): + self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + + def _get_last_reboot_time(self): + """ + Getter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64) + + YANG Description: This reports the time of the last reboot of the component. The +value is the timestamp in nanoseconds relative to the Unix Epoch +(Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_reboot_time + + def _set_last_reboot_time(self, v, load=False): + """ + Setter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_reboot_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_reboot_time() directly. + + YANG Description: This reports the time of the last reboot of the component. The +value is the timestamp in nanoseconds relative to the Unix Epoch +(Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_reboot_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_reboot_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_reboot_time(self): + self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_switchover_ready(self): + """ + Getter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean) + + YANG Description: For components that have redundant roles, this reports a value +that indicates if the component is ready to support failover. + +The components with a redundant-role should reflect the overall +system's switchover status. For example, two supervisors in a +device, one as primary and the other as secondary, should both +report the same value. + """ + return self.__switchover_ready + + def _set_switchover_ready(self, v, load=False): + """ + Setter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_switchover_ready is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_switchover_ready() directly. + + YANG Description: For components that have redundant roles, this reports a value +that indicates if the component is ready to support failover. + +The components with a redundant-role should reflect the overall +system's switchover status. For example, two supervisors in a +device, one as primary and the other as secondary, should both +report the same value. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """switchover_ready must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__switchover_ready = t + if hasattr(self, '_set'): + self._set() + + def _unset_switchover_ready(self): + self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_temperature(self): + """ + Getter method for temperature, mapped from YANG variable /components/component/state/temperature (container) + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + return self.__temperature + + def _set_temperature(self, v, load=False): + """ + Setter method for temperature, mapped from YANG variable /components/component/state/temperature (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_temperature is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_temperature() directly. + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """temperature must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__temperature = t + if hasattr(self, '_set'): + self._set() + + def _unset_temperature(self): + self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_memory(self): + """ + Getter method for memory, mapped from YANG variable /components/component/state/memory (container) + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + return self.__memory + + def _set_memory(self, v, load=False): + """ + Setter method for memory, mapped from YANG variable /components/component/state/memory (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_memory is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_memory() directly. + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """memory must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__memory = t + if hasattr(self, '_set'): + self._set() + + def _unset_memory(self): + self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_allocated_power(self): + """ + Getter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32) + + YANG Description: Power allocated by the system for the component. + """ + return self.__allocated_power + + def _set_allocated_power(self, v, load=False): + """ + Setter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_allocated_power is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_allocated_power() directly. + + YANG Description: Power allocated by the system for the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """allocated_power must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__allocated_power = t + if hasattr(self, '_set'): + self._set() + + def _unset_allocated_power(self): + self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_used_power(self): + """ + Getter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32) + + YANG Description: Actual power used by the component. + """ + return self.__used_power + + def _set_used_power(self, v, load=False): + """ + Setter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_used_power is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used_power() directly. + + YANG Description: Actual power used by the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used_power must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__used_power = t + if hasattr(self, '_set'): + self._set() + + def _unset_used_power(self): + self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_pcie(self): + """ + Getter method for pcie, mapped from YANG variable /components/component/state/pcie (container) + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + return self.__pcie + + def _set_pcie(self, v, load=False): + """ + Setter method for pcie, mapped from YANG variable /components/component/state/pcie (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_pcie is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_pcie() directly. + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """pcie must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__pcie = t + if hasattr(self, '_set'): + self._set() + + def _unset_pcie(self): + self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + name = __builtin__.property(_get_name) + type = __builtin__.property(_get_type) + id = __builtin__.property(_get_id) + location = __builtin__.property(_get_location) + description = __builtin__.property(_get_description) + mfg_name = __builtin__.property(_get_mfg_name) + mfg_date = __builtin__.property(_get_mfg_date) + hardware_version = __builtin__.property(_get_hardware_version) + firmware_version = __builtin__.property(_get_firmware_version) + software_version = __builtin__.property(_get_software_version) + serial_no = __builtin__.property(_get_serial_no) + part_no = __builtin__.property(_get_part_no) + clei_code = __builtin__.property(_get_clei_code) + removable = __builtin__.property(_get_removable) + oper_status = __builtin__.property(_get_oper_status) + empty = __builtin__.property(_get_empty) + parent = __builtin__.property(_get_parent) + redundant_role = __builtin__.property(_get_redundant_role) + last_switchover_reason = __builtin__.property(_get_last_switchover_reason) + last_switchover_time = __builtin__.property(_get_last_switchover_time) + last_reboot_reason = __builtin__.property(_get_last_reboot_reason) + last_reboot_time = __builtin__.property(_get_last_reboot_time) + switchover_ready = __builtin__.property(_get_switchover_ready) + temperature = __builtin__.property(_get_temperature) + memory = __builtin__.property(_get_memory) + allocated_power = __builtin__.property(_get_allocated_power) + used_power = __builtin__.property(_get_used_power) + pcie = __builtin__.property(_get_pcie) + + + _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('id', id), ('location', location), ('description', description), ('mfg_name', mfg_name), ('mfg_date', mfg_date), ('hardware_version', hardware_version), ('firmware_version', firmware_version), ('software_version', software_version), ('serial_no', serial_no), ('part_no', part_no), ('clei_code', clei_code), ('removable', removable), ('oper_status', oper_status), ('empty', empty), ('parent', parent), ('redundant_role', redundant_role), ('last_switchover_reason', last_switchover_reason), ('last_switchover_time', last_switchover_time), ('last_reboot_reason', last_reboot_reason), ('last_reboot_time', last_reboot_time), ('switchover_ready', switchover_ready), ('temperature', temperature), ('memory', memory), ('allocated_power', allocated_power), ('used_power', used_power), ('pcie', pcie), ]) + + +from . import last_switchover_reason +from . import temperature +from . import memory +from . import pcie +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for each component + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__type','__id','__location','__description','__mfg_name','__mfg_date','__hardware_version','__firmware_version','__software_version','__serial_no','__part_no','__clei_code','__removable','__oper_status','__empty','__parent','__redundant_role','__last_switchover_reason','__last_switchover_time','__last_reboot_reason','__last_reboot_time','__switchover_ready','__temperature','__memory','__allocated_power','__used_power','__pcie',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/state/name (string) + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Device name for the component -- this may not be a +configurable parameter on many implementations. Where +component preconfiguration is supported, for example, +the component name may be configurable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_type(self): + """ + Getter method for type, mapped from YANG variable /components/component/state/type (union) + + YANG Description: Type of component as identified by the system + """ + return self.__type + + def _set_type(self, v, load=False): + """ + Setter method for type, mapped from YANG variable /components/component/state/type (union) + If this variable is read-only (config: false) in the + source YANG file, then _set_type is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_type() directly. + + YANG Description: Type of component as identified by the system + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """type must be of a type compatible with union""", + 'defined-type': "openconfig-platform:union", + 'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""", + }) + + self.__type = t + if hasattr(self, '_set'): + self._set() + + def _unset_type(self): + self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False) + + + def _get_id(self): + """ + Getter method for id, mapped from YANG variable /components/component/state/id (string) + + YANG Description: Unique identifier assigned by the system for the +component + """ + return self.__id + + def _set_id(self, v, load=False): + """ + Setter method for id, mapped from YANG variable /components/component/state/id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_id() directly. + + YANG Description: Unique identifier assigned by the system for the +component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__id = t + if hasattr(self, '_set'): + self._set() + + def _unset_id(self): + self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_location(self): + """ + Getter method for location, mapped from YANG variable /components/component/state/location (string) + + YANG Description: System-supplied description of the location of the +component within the system. This could be a bay position, +slot number, socket location, etc. For component types that +have an explicit slot-id attribute, such as linecards, the +system should populate the more specific slot-id. + """ + return self.__location + + def _set_location(self, v, load=False): + """ + Setter method for location, mapped from YANG variable /components/component/state/location (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_location is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_location() directly. + + YANG Description: System-supplied description of the location of the +component within the system. This could be a bay position, +slot number, socket location, etc. For component types that +have an explicit slot-id attribute, such as linecards, the +system should populate the more specific slot-id. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """location must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__location = t + if hasattr(self, '_set'): + self._set() + + def _unset_location(self): + self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /components/component/state/description (string) + + YANG Description: System-supplied description of the component + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /components/component/state/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: System-supplied description of the component + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_mfg_name(self): + """ + Getter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string) + + YANG Description: System-supplied identifier for the manufacturer of the +component. This data is particularly useful when a +component manufacturer is different than the overall +device vendor. + """ + return self.__mfg_name + + def _set_mfg_name(self, v, load=False): + """ + Setter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_mfg_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mfg_name() directly. + + YANG Description: System-supplied identifier for the manufacturer of the +component. This data is particularly useful when a +component manufacturer is different than the overall +device vendor. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mfg_name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__mfg_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_mfg_name(self): + self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_mfg_date(self): + """ + Getter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date) + + YANG Description: System-supplied representation of the component's +manufacturing date. + """ + return self.__mfg_date + + def _set_mfg_date(self, v, load=False): + """ + Setter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date) + If this variable is read-only (config: false) in the + source YANG file, then _set_mfg_date is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mfg_date() directly. + + YANG Description: System-supplied representation of the component's +manufacturing date. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mfg_date must be of a type compatible with oc-yang:date""", + 'defined-type': "oc-yang:date", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)""", + }) + + self.__mfg_date = t + if hasattr(self, '_set'): + self._set() + + def _unset_mfg_date(self): + self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False) + + + def _get_hardware_version(self): + """ + Getter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string) + + YANG Description: For hardware components, this is the hardware revision of +the component. + """ + return self.__hardware_version + + def _set_hardware_version(self, v, load=False): + """ + Setter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_hardware_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hardware_version() directly. + + YANG Description: For hardware components, this is the hardware revision of +the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hardware_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__hardware_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_hardware_version(self): + self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_firmware_version(self): + """ + Getter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string) + + YANG Description: For hardware components, this is the version of associated +firmware that is running on the component, if applicable. + """ + return self.__firmware_version + + def _set_firmware_version(self, v, load=False): + """ + Setter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_firmware_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_firmware_version() directly. + + YANG Description: For hardware components, this is the version of associated +firmware that is running on the component, if applicable. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """firmware_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__firmware_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_firmware_version(self): + self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_software_version(self): + """ + Getter method for software_version, mapped from YANG variable /components/component/state/software_version (string) + + YANG Description: For software components such as operating system or other +software module, this is the version of the currently +running software. + """ + return self.__software_version + + def _set_software_version(self, v, load=False): + """ + Setter method for software_version, mapped from YANG variable /components/component/state/software_version (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_software_version is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_software_version() directly. + + YANG Description: For software components such as operating system or other +software module, this is the version of the currently +running software. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """software_version must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__software_version = t + if hasattr(self, '_set'): + self._set() + + def _unset_software_version(self): + self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_serial_no(self): + """ + Getter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string) + + YANG Description: System-assigned serial number of the component. + """ + return self.__serial_no + + def _set_serial_no(self, v, load=False): + """ + Setter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_serial_no is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_serial_no() directly. + + YANG Description: System-assigned serial number of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """serial_no must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__serial_no = t + if hasattr(self, '_set'): + self._set() + + def _unset_serial_no(self): + self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_part_no(self): + """ + Getter method for part_no, mapped from YANG variable /components/component/state/part_no (string) + + YANG Description: System-assigned part number for the component. This should +be present in particular if the component is also an FRU +(field replaceable unit) + """ + return self.__part_no + + def _set_part_no(self, v, load=False): + """ + Setter method for part_no, mapped from YANG variable /components/component/state/part_no (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_part_no is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_part_no() directly. + + YANG Description: System-assigned part number for the component. This should +be present in particular if the component is also an FRU +(field replaceable unit) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """part_no must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__part_no = t + if hasattr(self, '_set'): + self._set() + + def _unset_part_no(self): + self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_clei_code(self): + """ + Getter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string) + + YANG Description: Common Language Equipment Identifier (CLEI) code of the +component. This should be present in particular if the +component is also an FRU (field replaceable unit) + """ + return self.__clei_code + + def _set_clei_code(self, v, load=False): + """ + Setter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_clei_code is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_clei_code() directly. + + YANG Description: Common Language Equipment Identifier (CLEI) code of the +component. This should be present in particular if the +component is also an FRU (field replaceable unit) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """clei_code must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__clei_code = t + if hasattr(self, '_set'): + self._set() + + def _unset_clei_code(self): + self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + + def _get_removable(self): + """ + Getter method for removable, mapped from YANG variable /components/component/state/removable (boolean) + + YANG Description: If true, this component is removable or is a field +replaceable unit + """ + return self.__removable + + def _set_removable(self, v, load=False): + """ + Setter method for removable, mapped from YANG variable /components/component/state/removable (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_removable is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_removable() directly. + + YANG Description: If true, this component is removable or is a field +replaceable unit + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """removable must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__removable = t + if hasattr(self, '_set'): + self._set() + + def _unset_removable(self): + self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_oper_status(self): + """ + Getter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref) + + YANG Description: If applicable, this reports the current operational status +of the component. + """ + return self.__oper_status + + def _set_oper_status(self, v, load=False): + """ + Setter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_oper_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_oper_status() directly. + + YANG Description: If applicable, this reports the current operational status +of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """oper_status must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__oper_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_oper_status(self): + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + + def _get_empty(self): + """ + Getter method for empty, mapped from YANG variable /components/component/state/empty (boolean) + + YANG Description: The empty leaf may be used by the device to indicate that a +component position exists but is not populated. Using this +flag, it is possible for the management system to learn how +many positions are available (e.g., occupied vs. empty +linecard slots in a chassis). + """ + return self.__empty + + def _set_empty(self, v, load=False): + """ + Setter method for empty, mapped from YANG variable /components/component/state/empty (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_empty is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_empty() directly. + + YANG Description: The empty leaf may be used by the device to indicate that a +component position exists but is not populated. Using this +flag, it is possible for the management system to learn how +many positions are available (e.g., occupied vs. empty +linecard slots in a chassis). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """empty must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__empty = t + if hasattr(self, '_set'): + self._set() + + def _unset_empty(self): + self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_parent(self): + """ + Getter method for parent, mapped from YANG variable /components/component/state/parent (leafref) + + YANG Description: Reference to the name of the parent component. Note that +this reference must be kept synchronized with the +corresponding subcomponent reference from the parent +component. + """ + return self.__parent + + def _set_parent(self, v, load=False): + """ + Setter method for parent, mapped from YANG variable /components/component/state/parent (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_parent is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_parent() directly. + + YANG Description: Reference to the name of the parent component. Note that +this reference must be kept synchronized with the +corresponding subcomponent reference from the parent +component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """parent must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""", + }) + + self.__parent = t + if hasattr(self, '_set'): + self._set() + + def _unset_parent(self): + self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + + def _get_redundant_role(self): + """ + Getter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the role of the component. + """ + return self.__redundant_role + + def _set_redundant_role(self, v, load=False): + """ + Setter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role) + If this variable is read-only (config: false) in the + source YANG file, then _set_redundant_role is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_redundant_role() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the role of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """redundant_role must be of a type compatible with oc-platform-types:component-redundant-role""", + 'defined-type': "oc-platform-types:component-redundant-role", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)""", + }) + + self.__redundant_role = t + if hasattr(self, '_set'): + self._set() + + def _unset_redundant_role(self): + self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False) + + + def _get_last_switchover_reason(self): + """ + Getter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + return self.__last_switchover_reason + + def _set_last_switchover_reason(self, v, load=False): + """ + Setter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_switchover_reason is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_switchover_reason() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_switchover_reason must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__last_switchover_reason = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_switchover_reason(self): + self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_last_switchover_time(self): + """ + Getter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64) + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as +secondary), this reports the time of the last change of +the component's role. The value is the timestamp in +nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_switchover_time + + def _set_last_switchover_time(self, v, load=False): + """ + Setter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_switchover_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_switchover_time() directly. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as +secondary), this reports the time of the last change of +the component's role. The value is the timestamp in +nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_switchover_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_switchover_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_switchover_time(self): + self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_last_reboot_reason(self): + """ + Getter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref) + + YANG Description: This reports the reason of the last reboot of the component. + """ + return self.__last_reboot_reason + + def _set_last_reboot_reason(self, v, load=False): + """ + Setter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_reboot_reason is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_reboot_reason() directly. + + YANG Description: This reports the reason of the last reboot of the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_reboot_reason must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__last_reboot_reason = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_reboot_reason(self): + self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + + def _get_last_reboot_time(self): + """ + Getter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64) + + YANG Description: This reports the time of the last reboot of the component. The +value is the timestamp in nanoseconds relative to the Unix Epoch +(Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_reboot_time + + def _set_last_reboot_time(self, v, load=False): + """ + Setter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_reboot_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_reboot_time() directly. + + YANG Description: This reports the time of the last reboot of the component. The +value is the timestamp in nanoseconds relative to the Unix Epoch +(Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_reboot_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_reboot_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_reboot_time(self): + self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_switchover_ready(self): + """ + Getter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean) + + YANG Description: For components that have redundant roles, this reports a value +that indicates if the component is ready to support failover. + +The components with a redundant-role should reflect the overall +system's switchover status. For example, two supervisors in a +device, one as primary and the other as secondary, should both +report the same value. + """ + return self.__switchover_ready + + def _set_switchover_ready(self, v, load=False): + """ + Setter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_switchover_ready is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_switchover_ready() directly. + + YANG Description: For components that have redundant roles, this reports a value +that indicates if the component is ready to support failover. + +The components with a redundant-role should reflect the overall +system's switchover status. For example, two supervisors in a +device, one as primary and the other as secondary, should both +report the same value. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """switchover_ready must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__switchover_ready = t + if hasattr(self, '_set'): + self._set() + + def _unset_switchover_ready(self): + self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_temperature(self): + """ + Getter method for temperature, mapped from YANG variable /components/component/state/temperature (container) + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + return self.__temperature + + def _set_temperature(self, v, load=False): + """ + Setter method for temperature, mapped from YANG variable /components/component/state/temperature (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_temperature is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_temperature() directly. + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """temperature must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__temperature = t + if hasattr(self, '_set'): + self._set() + + def _unset_temperature(self): + self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_memory(self): + """ + Getter method for memory, mapped from YANG variable /components/component/state/memory (container) + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + return self.__memory + + def _set_memory(self, v, load=False): + """ + Setter method for memory, mapped from YANG variable /components/component/state/memory (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_memory is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_memory() directly. + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """memory must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__memory = t + if hasattr(self, '_set'): + self._set() + + def _unset_memory(self): + self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_allocated_power(self): + """ + Getter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32) + + YANG Description: Power allocated by the system for the component. + """ + return self.__allocated_power + + def _set_allocated_power(self, v, load=False): + """ + Setter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_allocated_power is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_allocated_power() directly. + + YANG Description: Power allocated by the system for the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """allocated_power must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__allocated_power = t + if hasattr(self, '_set'): + self._set() + + def _unset_allocated_power(self): + self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_used_power(self): + """ + Getter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32) + + YANG Description: Actual power used by the component. + """ + return self.__used_power + + def _set_used_power(self, v, load=False): + """ + Setter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_used_power is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_used_power() directly. + + YANG Description: Actual power used by the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """used_power must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__used_power = t + if hasattr(self, '_set'): + self._set() + + def _unset_used_power(self): + self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_pcie(self): + """ + Getter method for pcie, mapped from YANG variable /components/component/state/pcie (container) + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + return self.__pcie + + def _set_pcie(self, v, load=False): + """ + Setter method for pcie, mapped from YANG variable /components/component/state/pcie (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_pcie is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_pcie() directly. + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """pcie must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__pcie = t + if hasattr(self, '_set'): + self._set() + + def _unset_pcie(self): + self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + name = __builtin__.property(_get_name) + type = __builtin__.property(_get_type) + id = __builtin__.property(_get_id) + location = __builtin__.property(_get_location) + description = __builtin__.property(_get_description) + mfg_name = __builtin__.property(_get_mfg_name) + mfg_date = __builtin__.property(_get_mfg_date) + hardware_version = __builtin__.property(_get_hardware_version) + firmware_version = __builtin__.property(_get_firmware_version) + software_version = __builtin__.property(_get_software_version) + serial_no = __builtin__.property(_get_serial_no) + part_no = __builtin__.property(_get_part_no) + clei_code = __builtin__.property(_get_clei_code) + removable = __builtin__.property(_get_removable) + oper_status = __builtin__.property(_get_oper_status) + empty = __builtin__.property(_get_empty) + parent = __builtin__.property(_get_parent) + redundant_role = __builtin__.property(_get_redundant_role) + last_switchover_reason = __builtin__.property(_get_last_switchover_reason) + last_switchover_time = __builtin__.property(_get_last_switchover_time) + last_reboot_reason = __builtin__.property(_get_last_reboot_reason) + last_reboot_time = __builtin__.property(_get_last_reboot_time) + switchover_ready = __builtin__.property(_get_switchover_ready) + temperature = __builtin__.property(_get_temperature) + memory = __builtin__.property(_get_memory) + allocated_power = __builtin__.property(_get_allocated_power) + used_power = __builtin__.property(_get_used_power) + pcie = __builtin__.property(_get_pcie) + + + _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('id', id), ('location', location), ('description', description), ('mfg_name', mfg_name), ('mfg_date', mfg_date), ('hardware_version', hardware_version), ('firmware_version', firmware_version), ('software_version', software_version), ('serial_no', serial_no), ('part_no', part_no), ('clei_code', clei_code), ('removable', removable), ('oper_status', oper_status), ('empty', empty), ('parent', parent), ('redundant_role', redundant_role), ('last_switchover_reason', last_switchover_reason), ('last_switchover_time', last_switchover_time), ('last_reboot_reason', last_reboot_reason), ('last_reboot_time', last_reboot_time), ('switchover_ready', switchover_ready), ('temperature', temperature), ('memory', memory), ('allocated_power', allocated_power), ('used_power', used_power), ('pcie', pcie), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0786fb99cde68f9b4e23aa280f7a17e3fe280383 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py @@ -0,0 +1,306 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class last_switchover_reason(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/last-switchover-reason. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + __slots__ = ('_path_helper', '_extmethods', '__trigger','__details',) + + _yang_name = 'last-switchover-reason' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'last-switchover-reason'] + + def _get_trigger(self): + """ + Getter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger) + + YANG Description: Records the generic triggers, e.g. user or system +initiated the switchover. + """ + return self.__trigger + + def _set_trigger(self, v, load=False): + """ + Setter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger) + If this variable is read-only (config: false) in the + source YANG file, then _set_trigger is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_trigger() directly. + + YANG Description: Records the generic triggers, e.g. user or system +initiated the switchover. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """trigger must be of a type compatible with component-redundant-role-switchover-reason-trigger""", + 'defined-type': "openconfig-platform:component-redundant-role-switchover-reason-trigger", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)""", + }) + + self.__trigger = t + if hasattr(self, '_set'): + self._set() + + def _unset_trigger(self): + self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + + + def _get_details(self): + """ + Getter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string) + + YANG Description: Records detailed description of why the switchover happens. +For example, when system initiated the switchover, this leaf +can be used to record the specific reason, e.g. due to critical +errors of the routing daemon in the primary role. + """ + return self.__details + + def _set_details(self, v, load=False): + """ + Setter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_details is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_details() directly. + + YANG Description: Records detailed description of why the switchover happens. +For example, when system initiated the switchover, this leaf +can be used to record the specific reason, e.g. due to critical +errors of the routing daemon in the primary role. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """details must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__details = t + if hasattr(self, '_set'): + self._set() + + def _unset_details(self): + self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + trigger = __builtin__.property(_get_trigger) + details = __builtin__.property(_get_details) + + + _pyangbind_elements = OrderedDict([('trigger', trigger), ('details', details), ]) + + +class last_switchover_reason(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/last-switchover-reason. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: For components that have redundant roles (e.g. two +supervisors in a device, one as primary the other as secondary), +this reports the reason of the last change of the +component's role. + """ + __slots__ = ('_path_helper', '_extmethods', '__trigger','__details',) + + _yang_name = 'last-switchover-reason' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'last-switchover-reason'] + + def _get_trigger(self): + """ + Getter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger) + + YANG Description: Records the generic triggers, e.g. user or system +initiated the switchover. + """ + return self.__trigger + + def _set_trigger(self, v, load=False): + """ + Setter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger) + If this variable is read-only (config: false) in the + source YANG file, then _set_trigger is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_trigger() directly. + + YANG Description: Records the generic triggers, e.g. user or system +initiated the switchover. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """trigger must be of a type compatible with component-redundant-role-switchover-reason-trigger""", + 'defined-type': "openconfig-platform:component-redundant-role-switchover-reason-trigger", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)""", + }) + + self.__trigger = t + if hasattr(self, '_set'): + self._set() + + def _unset_trigger(self): + self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False) + + + def _get_details(self): + """ + Getter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string) + + YANG Description: Records detailed description of why the switchover happens. +For example, when system initiated the switchover, this leaf +can be used to record the specific reason, e.g. due to critical +errors of the routing daemon in the primary role. + """ + return self.__details + + def _set_details(self, v, load=False): + """ + Setter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_details is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_details() directly. + + YANG Description: Records detailed description of why the switchover happens. +For example, when system initiated the switchover, this leaf +can be used to record the specific reason, e.g. due to critical +errors of the routing daemon in the primary role. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """details must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""", + }) + + self.__details = t + if hasattr(self, '_set'): + self._set() + + def _unset_details(self): + self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False) + + trigger = __builtin__.property(_get_trigger) + details = __builtin__.property(_get_details) + + + _pyangbind_elements = OrderedDict([('trigger', trigger), ('details', details), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9a153eaf65f4eaef08cb2cef68057aa114183d8b --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py @@ -0,0 +1,298 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class memory(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/memory. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + __slots__ = ('_path_helper', '_extmethods', '__available','__utilized',) + + _yang_name = 'memory' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'memory'] + + def _get_available(self): + """ + Getter method for available, mapped from YANG variable /components/component/state/memory/available (uint64) + + YANG Description: The available memory physically installed, or logically +allocated to the component. + """ + return self.__available + + def _set_available(self, v, load=False): + """ + Setter method for available, mapped from YANG variable /components/component/state/memory/available (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_available is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_available() directly. + + YANG Description: The available memory physically installed, or logically +allocated to the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """available must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__available = t + if hasattr(self, '_set'): + self._set() + + def _unset_available(self): + self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_utilized(self): + """ + Getter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64) + + YANG Description: The memory currently in use by processes running on +the component, not considering reserved memory that is +not available for use. + """ + return self.__utilized + + def _set_utilized(self, v, load=False): + """ + Setter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilized is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilized() directly. + + YANG Description: The memory currently in use by processes running on +the component, not considering reserved memory that is +not available for use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilized must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__utilized = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilized(self): + self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + available = __builtin__.property(_get_available) + utilized = __builtin__.property(_get_utilized) + + + _pyangbind_elements = OrderedDict([('available', available), ('utilized', utilized), ]) + + +class memory(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/memory. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: For components that have associated memory, these values +report information about available and utilized memory. + """ + __slots__ = ('_path_helper', '_extmethods', '__available','__utilized',) + + _yang_name = 'memory' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'memory'] + + def _get_available(self): + """ + Getter method for available, mapped from YANG variable /components/component/state/memory/available (uint64) + + YANG Description: The available memory physically installed, or logically +allocated to the component. + """ + return self.__available + + def _set_available(self, v, load=False): + """ + Setter method for available, mapped from YANG variable /components/component/state/memory/available (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_available is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_available() directly. + + YANG Description: The available memory physically installed, or logically +allocated to the component. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """available must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__available = t + if hasattr(self, '_set'): + self._set() + + def _unset_available(self): + self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + + def _get_utilized(self): + """ + Getter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64) + + YANG Description: The memory currently in use by processes running on +the component, not considering reserved memory that is +not available for use. + """ + return self.__utilized + + def _set_utilized(self, v, load=False): + """ + Setter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64) + If this variable is read-only (config: false) in the + source YANG file, then _set_utilized is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_utilized() directly. + + YANG Description: The memory currently in use by processes running on +the component, not considering reserved memory that is +not available for use. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """utilized must be of a type compatible with uint64""", + 'defined-type': "uint64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""", + }) + + self.__utilized = t + if hasattr(self, '_set'): + self._set() + + def _unset_utilized(self): + self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False) + + available = __builtin__.property(_get_available) + utilized = __builtin__.property(_get_utilized) + + + _pyangbind_elements = OrderedDict([('available', available), ('utilized', utilized), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..aae99fcd62370ff7596b1401df999fe6a2a4ec0c --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py @@ -0,0 +1,372 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import fatal_errors +from . import non_fatal_errors +from . import correctable_errors +class pcie(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/pcie. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + __slots__ = ('_path_helper', '_extmethods', '__fatal_errors','__non_fatal_errors','__correctable_errors',) + + _yang_name = 'pcie' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie'] + + def _get_fatal_errors(self): + """ + Getter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container) + + YANG Description: The count of the fatal PCIe errors. + """ + return self.__fatal_errors + + def _set_fatal_errors(self, v, load=False): + """ + Setter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fatal_errors() directly. + + YANG Description: The count of the fatal PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fatal_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_fatal_errors(self): + self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_non_fatal_errors(self): + """ + Getter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container) + + YANG Description: The count of the non-fatal PCIe errors. + """ + return self.__non_fatal_errors + + def _set_non_fatal_errors(self, v, load=False): + """ + Setter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_non_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_non_fatal_errors() directly. + + YANG Description: The count of the non-fatal PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """non_fatal_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__non_fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_non_fatal_errors(self): + self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_correctable_errors(self): + """ + Getter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container) + + YANG Description: The count of the correctable PCIe errors. + """ + return self.__correctable_errors + + def _set_correctable_errors(self, v, load=False): + """ + Setter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_correctable_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_correctable_errors() directly. + + YANG Description: The count of the correctable PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """correctable_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__correctable_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_correctable_errors(self): + self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + fatal_errors = __builtin__.property(_get_fatal_errors) + non_fatal_errors = __builtin__.property(_get_non_fatal_errors) + correctable_errors = __builtin__.property(_get_correctable_errors) + + + _pyangbind_elements = OrderedDict([('fatal_errors', fatal_errors), ('non_fatal_errors', non_fatal_errors), ('correctable_errors', correctable_errors), ]) + + +from . import fatal_errors +from . import non_fatal_errors +from . import correctable_errors +class pcie(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/pcie. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Components that are connected to the system over the Peripheral +Component Interconnect Express (PCIe), report the fatal, non-fatal +and correctable PCIe error counts. + """ + __slots__ = ('_path_helper', '_extmethods', '__fatal_errors','__non_fatal_errors','__correctable_errors',) + + _yang_name = 'pcie' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie'] + + def _get_fatal_errors(self): + """ + Getter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container) + + YANG Description: The count of the fatal PCIe errors. + """ + return self.__fatal_errors + + def _set_fatal_errors(self, v, load=False): + """ + Setter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fatal_errors() directly. + + YANG Description: The count of the fatal PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fatal_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_fatal_errors(self): + self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_non_fatal_errors(self): + """ + Getter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container) + + YANG Description: The count of the non-fatal PCIe errors. + """ + return self.__non_fatal_errors + + def _set_non_fatal_errors(self, v, load=False): + """ + Setter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_non_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_non_fatal_errors() directly. + + YANG Description: The count of the non-fatal PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """non_fatal_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__non_fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_non_fatal_errors(self): + self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + + def _get_correctable_errors(self): + """ + Getter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container) + + YANG Description: The count of the correctable PCIe errors. + """ + return self.__correctable_errors + + def _set_correctable_errors(self, v, load=False): + """ + Setter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_correctable_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_correctable_errors() directly. + + YANG Description: The count of the correctable PCIe errors. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """correctable_errors must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""", + }) + + self.__correctable_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_correctable_errors(self): + self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False) + + fatal_errors = __builtin__.property(_get_fatal_errors) + non_fatal_errors = __builtin__.property(_get_non_fatal_errors) + correctable_errors = __builtin__.property(_get_correctable_errors) + + + _pyangbind_elements = OrderedDict([('fatal_errors', fatal_errors), ('non_fatal_errors', non_fatal_errors), ('correctable_errors', correctable_errors), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..bbef37323ba6b26d689f1575ce9afcd1ffbb9a7e --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py @@ -0,0 +1,866 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class correctable_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/pcie/correctable-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the correctable PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__receiver_errors','__bad_tlp_errors','__bad_dllp_errors','__relay_rollover_errors','__replay_timeout_errors','__advisory_non_fatal_errors','__internal_errors','__hdr_log_overflow_errors',) + + _yang_name = 'correctable-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'correctable-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of correctable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of correctable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_errors(self): + """ + Getter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64) + + YANG Description: Number of receiver errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__receiver_errors + + def _set_receiver_errors(self, v, load=False): + """ + Setter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_errors() directly. + + YANG Description: Number of receiver errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_errors(self): + self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_bad_tlp_errors(self): + """ + Getter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64) + + YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__bad_tlp_errors + + def _set_bad_tlp_errors(self, v, load=False): + """ + Setter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_bad_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bad_tlp_errors() directly. + + YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bad_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__bad_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_bad_tlp_errors(self): + self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_bad_dllp_errors(self): + """ + Getter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64) + + YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__bad_dllp_errors + + def _set_bad_dllp_errors(self, v, load=False): + """ + Setter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_bad_dllp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bad_dllp_errors() directly. + + YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bad_dllp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__bad_dllp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_bad_dllp_errors(self): + self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_relay_rollover_errors(self): + """ + Getter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64) + + YANG Description: Number of relay rollover errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__relay_rollover_errors + + def _set_relay_rollover_errors(self, v, load=False): + """ + Setter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_relay_rollover_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_relay_rollover_errors() directly. + + YANG Description: Number of relay rollover errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """relay_rollover_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__relay_rollover_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_relay_rollover_errors(self): + self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_replay_timeout_errors(self): + """ + Getter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64) + + YANG Description: Number of replay timeout errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__replay_timeout_errors + + def _set_replay_timeout_errors(self, v, load=False): + """ + Setter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_replay_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_replay_timeout_errors() directly. + + YANG Description: Number of replay timeout errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """replay_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__replay_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_replay_timeout_errors(self): + self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_advisory_non_fatal_errors(self): + """ + Getter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64) + + YANG Description: Number of advisory non fatal errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__advisory_non_fatal_errors + + def _set_advisory_non_fatal_errors(self, v, load=False): + """ + Setter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_advisory_non_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_advisory_non_fatal_errors() directly. + + YANG Description: Number of advisory non fatal errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """advisory_non_fatal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__advisory_non_fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_advisory_non_fatal_errors(self): + self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_hdr_log_overflow_errors(self): + """ + Getter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64) + + YANG Description: Number of header log overflow errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__hdr_log_overflow_errors + + def _set_hdr_log_overflow_errors(self, v, load=False): + """ + Setter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_hdr_log_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hdr_log_overflow_errors() directly. + + YANG Description: Number of header log overflow errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hdr_log_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__hdr_log_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_hdr_log_overflow_errors(self): + self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + receiver_errors = __builtin__.property(_get_receiver_errors) + bad_tlp_errors = __builtin__.property(_get_bad_tlp_errors) + bad_dllp_errors = __builtin__.property(_get_bad_dllp_errors) + relay_rollover_errors = __builtin__.property(_get_relay_rollover_errors) + replay_timeout_errors = __builtin__.property(_get_replay_timeout_errors) + advisory_non_fatal_errors = __builtin__.property(_get_advisory_non_fatal_errors) + internal_errors = __builtin__.property(_get_internal_errors) + hdr_log_overflow_errors = __builtin__.property(_get_hdr_log_overflow_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('receiver_errors', receiver_errors), ('bad_tlp_errors', bad_tlp_errors), ('bad_dllp_errors', bad_dllp_errors), ('relay_rollover_errors', relay_rollover_errors), ('replay_timeout_errors', replay_timeout_errors), ('advisory_non_fatal_errors', advisory_non_fatal_errors), ('internal_errors', internal_errors), ('hdr_log_overflow_errors', hdr_log_overflow_errors), ]) + + +class correctable_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/correctable-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the correctable PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__receiver_errors','__bad_tlp_errors','__bad_dllp_errors','__relay_rollover_errors','__replay_timeout_errors','__advisory_non_fatal_errors','__internal_errors','__hdr_log_overflow_errors',) + + _yang_name = 'correctable-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'correctable-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of correctable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of correctable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_errors(self): + """ + Getter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64) + + YANG Description: Number of receiver errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__receiver_errors + + def _set_receiver_errors(self, v, load=False): + """ + Setter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_errors() directly. + + YANG Description: Number of receiver errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_errors(self): + self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_bad_tlp_errors(self): + """ + Getter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64) + + YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__bad_tlp_errors + + def _set_bad_tlp_errors(self, v, load=False): + """ + Setter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_bad_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bad_tlp_errors() directly. + + YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bad_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__bad_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_bad_tlp_errors(self): + self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_bad_dllp_errors(self): + """ + Getter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64) + + YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__bad_dllp_errors + + def _set_bad_dllp_errors(self, v, load=False): + """ + Setter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_bad_dllp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bad_dllp_errors() directly. + + YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bad_dllp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__bad_dllp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_bad_dllp_errors(self): + self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_relay_rollover_errors(self): + """ + Getter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64) + + YANG Description: Number of relay rollover errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__relay_rollover_errors + + def _set_relay_rollover_errors(self, v, load=False): + """ + Setter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_relay_rollover_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_relay_rollover_errors() directly. + + YANG Description: Number of relay rollover errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """relay_rollover_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__relay_rollover_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_relay_rollover_errors(self): + self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_replay_timeout_errors(self): + """ + Getter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64) + + YANG Description: Number of replay timeout errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__replay_timeout_errors + + def _set_replay_timeout_errors(self, v, load=False): + """ + Setter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_replay_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_replay_timeout_errors() directly. + + YANG Description: Number of replay timeout errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """replay_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__replay_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_replay_timeout_errors(self): + self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_advisory_non_fatal_errors(self): + """ + Getter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64) + + YANG Description: Number of advisory non fatal errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__advisory_non_fatal_errors + + def _set_advisory_non_fatal_errors(self, v, load=False): + """ + Setter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_advisory_non_fatal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_advisory_non_fatal_errors() directly. + + YANG Description: Number of advisory non fatal errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """advisory_non_fatal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__advisory_non_fatal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_advisory_non_fatal_errors(self): + self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_hdr_log_overflow_errors(self): + """ + Getter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64) + + YANG Description: Number of header log overflow errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__hdr_log_overflow_errors + + def _set_hdr_log_overflow_errors(self, v, load=False): + """ + Setter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_hdr_log_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hdr_log_overflow_errors() directly. + + YANG Description: Number of header log overflow errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hdr_log_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__hdr_log_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_hdr_log_overflow_errors(self): + self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + receiver_errors = __builtin__.property(_get_receiver_errors) + bad_tlp_errors = __builtin__.property(_get_bad_tlp_errors) + bad_dllp_errors = __builtin__.property(_get_bad_dllp_errors) + relay_rollover_errors = __builtin__.property(_get_relay_rollover_errors) + replay_timeout_errors = __builtin__.property(_get_replay_timeout_errors) + advisory_non_fatal_errors = __builtin__.property(_get_advisory_non_fatal_errors) + internal_errors = __builtin__.property(_get_internal_errors) + hdr_log_overflow_errors = __builtin__.property(_get_hdr_log_overflow_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('receiver_errors', receiver_errors), ('bad_tlp_errors', bad_tlp_errors), ('bad_dllp_errors', bad_dllp_errors), ('relay_rollover_errors', relay_rollover_errors), ('replay_timeout_errors', replay_timeout_errors), ('advisory_non_fatal_errors', advisory_non_fatal_errors), ('internal_errors', internal_errors), ('hdr_log_overflow_errors', hdr_log_overflow_errors), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..12185542ccc99155d1fd1bd22407db0421a753c0 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py @@ -0,0 +1,1604 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class fatal_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/pcie/fatal-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the fatal PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',) + + _yang_name = 'fatal-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'fatal-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_undefined_errors(self): + """ + Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64) + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__undefined_errors + + def _set_undefined_errors(self, v, load=False): + """ + Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_undefined_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_undefined_errors() directly. + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__undefined_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_undefined_errors(self): + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_data_link_errors(self): + """ + Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64) + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__data_link_errors + + def _set_data_link_errors(self, v, load=False): + """ + Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_data_link_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_data_link_errors() directly. + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__data_link_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_data_link_errors(self): + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_surprise_down_errors(self): + """ + Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64) + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__surprise_down_errors + + def _set_surprise_down_errors(self, v, load=False): + """ + Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_surprise_down_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_surprise_down_errors() directly. + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__surprise_down_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_surprise_down_errors(self): + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_poisoned_tlp_errors(self): + """ + Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__poisoned_tlp_errors + + def _set_poisoned_tlp_errors(self, v, load=False): + """ + Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_poisoned_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_poisoned_tlp_errors() directly. + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__poisoned_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_poisoned_tlp_errors(self): + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_flow_control_protocol_errors(self): + """ + Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__flow_control_protocol_errors + + def _set_flow_control_protocol_errors(self, v, load=False): + """ + Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_flow_control_protocol_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_flow_control_protocol_errors() directly. + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__flow_control_protocol_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_flow_control_protocol_errors(self): + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_timeout_errors(self): + """ + Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64) + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_timeout_errors + + def _set_completion_timeout_errors(self, v, load=False): + """ + Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_timeout_errors() directly. + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_timeout_errors(self): + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_abort_errors(self): + """ + Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64) + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_abort_errors + + def _set_completion_abort_errors(self, v, load=False): + """ + Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_abort_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_abort_errors() directly. + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_abort_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_abort_errors(self): + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unexpected_completion_errors(self): + """ + Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64) + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unexpected_completion_errors + + def _set_unexpected_completion_errors(self, v, load=False): + """ + Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unexpected_completion_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unexpected_completion_errors() directly. + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unexpected_completion_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unexpected_completion_errors(self): + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_overflow_errors(self): + """ + Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64) + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__receiver_overflow_errors + + def _set_receiver_overflow_errors(self, v, load=False): + """ + Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_overflow_errors() directly. + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_overflow_errors(self): + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_malformed_tlp_errors(self): + """ + Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64) + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__malformed_tlp_errors + + def _set_malformed_tlp_errors(self, v, load=False): + """ + Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_malformed_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_malformed_tlp_errors() directly. + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__malformed_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_malformed_tlp_errors(self): + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_ecrc_errors(self): + """ + Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64) + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__ecrc_errors + + def _set_ecrc_errors(self, v, load=False): + """ + Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_ecrc_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ecrc_errors() directly. + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__ecrc_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_ecrc_errors(self): + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unsupported_request_errors(self): + """ + Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64) + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unsupported_request_errors + + def _set_unsupported_request_errors(self, v, load=False): + """ + Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unsupported_request_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unsupported_request_errors() directly. + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unsupported_request_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unsupported_request_errors(self): + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_acs_violation_errors(self): + """ + Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64) + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__acs_violation_errors + + def _set_acs_violation_errors(self, v, load=False): + """ + Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_acs_violation_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_acs_violation_errors() directly. + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__acs_violation_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_acs_violation_errors(self): + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_blocked_tlp_errors(self): + """ + Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64) + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__blocked_tlp_errors + + def _set_blocked_tlp_errors(self, v, load=False): + """ + Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_blocked_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_blocked_tlp_errors() directly. + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__blocked_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_blocked_tlp_errors(self): + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_atomic_op_blocked_errors(self): + """ + Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + return self.__atomic_op_blocked_errors + + def _set_atomic_op_blocked_errors(self, v, load=False): + """ + Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_atomic_op_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_atomic_op_blocked_errors() directly. + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__atomic_op_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_atomic_op_blocked_errors(self): + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_tlp_prefix_blocked_errors(self): + """ + Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__tlp_prefix_blocked_errors + + def _set_tlp_prefix_blocked_errors(self, v, load=False): + """ + Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_tlp_prefix_blocked_errors() directly. + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__tlp_prefix_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_tlp_prefix_blocked_errors(self): + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + undefined_errors = __builtin__.property(_get_undefined_errors) + data_link_errors = __builtin__.property(_get_data_link_errors) + surprise_down_errors = __builtin__.property(_get_surprise_down_errors) + poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors) + flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors) + completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors) + completion_abort_errors = __builtin__.property(_get_completion_abort_errors) + unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors) + receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors) + malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors) + ecrc_errors = __builtin__.property(_get_ecrc_errors) + unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors) + acs_violation_errors = __builtin__.property(_get_acs_violation_errors) + internal_errors = __builtin__.property(_get_internal_errors) + blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors) + atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors) + tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ]) + + +class fatal_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/fatal-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the fatal PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',) + + _yang_name = 'fatal-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'fatal-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_undefined_errors(self): + """ + Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64) + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__undefined_errors + + def _set_undefined_errors(self, v, load=False): + """ + Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_undefined_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_undefined_errors() directly. + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__undefined_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_undefined_errors(self): + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_data_link_errors(self): + """ + Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64) + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__data_link_errors + + def _set_data_link_errors(self, v, load=False): + """ + Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_data_link_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_data_link_errors() directly. + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__data_link_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_data_link_errors(self): + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_surprise_down_errors(self): + """ + Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64) + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__surprise_down_errors + + def _set_surprise_down_errors(self, v, load=False): + """ + Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_surprise_down_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_surprise_down_errors() directly. + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__surprise_down_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_surprise_down_errors(self): + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_poisoned_tlp_errors(self): + """ + Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__poisoned_tlp_errors + + def _set_poisoned_tlp_errors(self, v, load=False): + """ + Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_poisoned_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_poisoned_tlp_errors() directly. + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__poisoned_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_poisoned_tlp_errors(self): + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_flow_control_protocol_errors(self): + """ + Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__flow_control_protocol_errors + + def _set_flow_control_protocol_errors(self, v, load=False): + """ + Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_flow_control_protocol_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_flow_control_protocol_errors() directly. + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__flow_control_protocol_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_flow_control_protocol_errors(self): + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_timeout_errors(self): + """ + Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64) + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_timeout_errors + + def _set_completion_timeout_errors(self, v, load=False): + """ + Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_timeout_errors() directly. + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_timeout_errors(self): + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_abort_errors(self): + """ + Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64) + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_abort_errors + + def _set_completion_abort_errors(self, v, load=False): + """ + Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_abort_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_abort_errors() directly. + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_abort_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_abort_errors(self): + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unexpected_completion_errors(self): + """ + Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64) + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unexpected_completion_errors + + def _set_unexpected_completion_errors(self, v, load=False): + """ + Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unexpected_completion_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unexpected_completion_errors() directly. + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unexpected_completion_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unexpected_completion_errors(self): + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_overflow_errors(self): + """ + Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64) + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__receiver_overflow_errors + + def _set_receiver_overflow_errors(self, v, load=False): + """ + Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_overflow_errors() directly. + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_overflow_errors(self): + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_malformed_tlp_errors(self): + """ + Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64) + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__malformed_tlp_errors + + def _set_malformed_tlp_errors(self, v, load=False): + """ + Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_malformed_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_malformed_tlp_errors() directly. + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__malformed_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_malformed_tlp_errors(self): + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_ecrc_errors(self): + """ + Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64) + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__ecrc_errors + + def _set_ecrc_errors(self, v, load=False): + """ + Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_ecrc_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ecrc_errors() directly. + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__ecrc_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_ecrc_errors(self): + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unsupported_request_errors(self): + """ + Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64) + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unsupported_request_errors + + def _set_unsupported_request_errors(self, v, load=False): + """ + Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unsupported_request_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unsupported_request_errors() directly. + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unsupported_request_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unsupported_request_errors(self): + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_acs_violation_errors(self): + """ + Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64) + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__acs_violation_errors + + def _set_acs_violation_errors(self, v, load=False): + """ + Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_acs_violation_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_acs_violation_errors() directly. + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__acs_violation_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_acs_violation_errors(self): + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_blocked_tlp_errors(self): + """ + Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64) + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__blocked_tlp_errors + + def _set_blocked_tlp_errors(self, v, load=False): + """ + Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_blocked_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_blocked_tlp_errors() directly. + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__blocked_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_blocked_tlp_errors(self): + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_atomic_op_blocked_errors(self): + """ + Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + return self.__atomic_op_blocked_errors + + def _set_atomic_op_blocked_errors(self, v, load=False): + """ + Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_atomic_op_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_atomic_op_blocked_errors() directly. + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__atomic_op_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_atomic_op_blocked_errors(self): + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_tlp_prefix_blocked_errors(self): + """ + Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__tlp_prefix_blocked_errors + + def _set_tlp_prefix_blocked_errors(self, v, load=False): + """ + Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_tlp_prefix_blocked_errors() directly. + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__tlp_prefix_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_tlp_prefix_blocked_errors(self): + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + undefined_errors = __builtin__.property(_get_undefined_errors) + data_link_errors = __builtin__.property(_get_data_link_errors) + surprise_down_errors = __builtin__.property(_get_surprise_down_errors) + poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors) + flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors) + completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors) + completion_abort_errors = __builtin__.property(_get_completion_abort_errors) + unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors) + receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors) + malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors) + ecrc_errors = __builtin__.property(_get_ecrc_errors) + unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors) + acs_violation_errors = __builtin__.property(_get_acs_violation_errors) + internal_errors = __builtin__.property(_get_internal_errors) + blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors) + atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors) + tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..02674f40f1f19a8023fc756bb1b2225f7750e645 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py @@ -0,0 +1,1604 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class non_fatal_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/pcie/non-fatal-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the non-fatal PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',) + + _yang_name = 'non-fatal-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'non-fatal-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_undefined_errors(self): + """ + Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64) + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__undefined_errors + + def _set_undefined_errors(self, v, load=False): + """ + Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_undefined_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_undefined_errors() directly. + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__undefined_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_undefined_errors(self): + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_data_link_errors(self): + """ + Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64) + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__data_link_errors + + def _set_data_link_errors(self, v, load=False): + """ + Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_data_link_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_data_link_errors() directly. + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__data_link_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_data_link_errors(self): + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_surprise_down_errors(self): + """ + Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64) + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__surprise_down_errors + + def _set_surprise_down_errors(self, v, load=False): + """ + Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_surprise_down_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_surprise_down_errors() directly. + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__surprise_down_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_surprise_down_errors(self): + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_poisoned_tlp_errors(self): + """ + Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__poisoned_tlp_errors + + def _set_poisoned_tlp_errors(self, v, load=False): + """ + Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_poisoned_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_poisoned_tlp_errors() directly. + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__poisoned_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_poisoned_tlp_errors(self): + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_flow_control_protocol_errors(self): + """ + Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__flow_control_protocol_errors + + def _set_flow_control_protocol_errors(self, v, load=False): + """ + Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_flow_control_protocol_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_flow_control_protocol_errors() directly. + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__flow_control_protocol_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_flow_control_protocol_errors(self): + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_timeout_errors(self): + """ + Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64) + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_timeout_errors + + def _set_completion_timeout_errors(self, v, load=False): + """ + Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_timeout_errors() directly. + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_timeout_errors(self): + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_abort_errors(self): + """ + Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64) + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_abort_errors + + def _set_completion_abort_errors(self, v, load=False): + """ + Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_abort_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_abort_errors() directly. + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_abort_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_abort_errors(self): + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unexpected_completion_errors(self): + """ + Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64) + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unexpected_completion_errors + + def _set_unexpected_completion_errors(self, v, load=False): + """ + Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unexpected_completion_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unexpected_completion_errors() directly. + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unexpected_completion_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unexpected_completion_errors(self): + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_overflow_errors(self): + """ + Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64) + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__receiver_overflow_errors + + def _set_receiver_overflow_errors(self, v, load=False): + """ + Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_overflow_errors() directly. + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_overflow_errors(self): + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_malformed_tlp_errors(self): + """ + Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64) + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__malformed_tlp_errors + + def _set_malformed_tlp_errors(self, v, load=False): + """ + Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_malformed_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_malformed_tlp_errors() directly. + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__malformed_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_malformed_tlp_errors(self): + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_ecrc_errors(self): + """ + Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64) + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__ecrc_errors + + def _set_ecrc_errors(self, v, load=False): + """ + Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_ecrc_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ecrc_errors() directly. + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__ecrc_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_ecrc_errors(self): + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unsupported_request_errors(self): + """ + Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64) + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unsupported_request_errors + + def _set_unsupported_request_errors(self, v, load=False): + """ + Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unsupported_request_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unsupported_request_errors() directly. + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unsupported_request_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unsupported_request_errors(self): + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_acs_violation_errors(self): + """ + Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64) + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__acs_violation_errors + + def _set_acs_violation_errors(self, v, load=False): + """ + Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_acs_violation_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_acs_violation_errors() directly. + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__acs_violation_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_acs_violation_errors(self): + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_blocked_tlp_errors(self): + """ + Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64) + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__blocked_tlp_errors + + def _set_blocked_tlp_errors(self, v, load=False): + """ + Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_blocked_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_blocked_tlp_errors() directly. + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__blocked_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_blocked_tlp_errors(self): + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_atomic_op_blocked_errors(self): + """ + Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + return self.__atomic_op_blocked_errors + + def _set_atomic_op_blocked_errors(self, v, load=False): + """ + Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_atomic_op_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_atomic_op_blocked_errors() directly. + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__atomic_op_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_atomic_op_blocked_errors(self): + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_tlp_prefix_blocked_errors(self): + """ + Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__tlp_prefix_blocked_errors + + def _set_tlp_prefix_blocked_errors(self, v, load=False): + """ + Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_tlp_prefix_blocked_errors() directly. + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__tlp_prefix_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_tlp_prefix_blocked_errors(self): + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + undefined_errors = __builtin__.property(_get_undefined_errors) + data_link_errors = __builtin__.property(_get_data_link_errors) + surprise_down_errors = __builtin__.property(_get_surprise_down_errors) + poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors) + flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors) + completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors) + completion_abort_errors = __builtin__.property(_get_completion_abort_errors) + unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors) + receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors) + malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors) + ecrc_errors = __builtin__.property(_get_ecrc_errors) + unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors) + acs_violation_errors = __builtin__.property(_get_acs_violation_errors) + internal_errors = __builtin__.property(_get_internal_errors) + blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors) + atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors) + tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ]) + + +class non_fatal_errors(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/non-fatal-errors. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The count of the non-fatal PCIe errors. + """ + __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',) + + _yang_name = 'non-fatal-errors' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'pcie', 'non-fatal-errors'] + + def _get_total_errors(self): + """ + Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64) + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__total_errors + + def _set_total_errors(self, v, load=False): + """ + Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_total_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_total_errors() directly. + + YANG Description: Total number of uncorrectable errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """total_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__total_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_total_errors(self): + self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_undefined_errors(self): + """ + Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64) + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__undefined_errors + + def _set_undefined_errors(self, v, load=False): + """ + Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_undefined_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_undefined_errors() directly. + + YANG Description: Number of undefined errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__undefined_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_undefined_errors(self): + self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_data_link_errors(self): + """ + Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64) + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__data_link_errors + + def _set_data_link_errors(self, v, load=False): + """ + Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_data_link_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_data_link_errors() directly. + + YANG Description: Number of data-link errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__data_link_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_data_link_errors(self): + self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_surprise_down_errors(self): + """ + Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64) + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__surprise_down_errors + + def _set_surprise_down_errors(self, v, load=False): + """ + Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_surprise_down_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_surprise_down_errors() directly. + + YANG Description: Number of unexpected link down errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__surprise_down_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_surprise_down_errors(self): + self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_poisoned_tlp_errors(self): + """ + Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__poisoned_tlp_errors + + def _set_poisoned_tlp_errors(self, v, load=False): + """ + Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_poisoned_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_poisoned_tlp_errors() directly. + + YANG Description: Number of poisoned TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__poisoned_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_poisoned_tlp_errors(self): + self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_flow_control_protocol_errors(self): + """ + Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__flow_control_protocol_errors + + def _set_flow_control_protocol_errors(self, v, load=False): + """ + Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_flow_control_protocol_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_flow_control_protocol_errors() directly. + + YANG Description: Number of flow control protocol errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__flow_control_protocol_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_flow_control_protocol_errors(self): + self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_timeout_errors(self): + """ + Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64) + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_timeout_errors + + def _set_completion_timeout_errors(self, v, load=False): + """ + Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_timeout_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_timeout_errors() directly. + + YANG Description: Number of completion timeout errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_timeout_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_timeout_errors(self): + self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_completion_abort_errors(self): + """ + Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64) + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__completion_abort_errors + + def _set_completion_abort_errors(self, v, load=False): + """ + Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_completion_abort_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_completion_abort_errors() directly. + + YANG Description: Number of completion abort errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__completion_abort_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_completion_abort_errors(self): + self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unexpected_completion_errors(self): + """ + Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64) + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unexpected_completion_errors + + def _set_unexpected_completion_errors(self, v, load=False): + """ + Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unexpected_completion_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unexpected_completion_errors() directly. + + YANG Description: Number of unexpected completion errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unexpected_completion_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unexpected_completion_errors(self): + self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_receiver_overflow_errors(self): + """ + Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64) + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__receiver_overflow_errors + + def _set_receiver_overflow_errors(self, v, load=False): + """ + Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_receiver_overflow_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_receiver_overflow_errors() directly. + + YANG Description: Number of receiver overflow errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__receiver_overflow_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_receiver_overflow_errors(self): + self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_malformed_tlp_errors(self): + """ + Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64) + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__malformed_tlp_errors + + def _set_malformed_tlp_errors(self, v, load=False): + """ + Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_malformed_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_malformed_tlp_errors() directly. + + YANG Description: Number of malformed TLP errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__malformed_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_malformed_tlp_errors(self): + self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_ecrc_errors(self): + """ + Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64) + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + return self.__ecrc_errors + + def _set_ecrc_errors(self, v, load=False): + """ + Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_ecrc_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ecrc_errors() directly. + + YANG Description: Number of ECRC errors detected by PCIe device since the system +booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__ecrc_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_ecrc_errors(self): + self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_unsupported_request_errors(self): + """ + Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64) + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__unsupported_request_errors + + def _set_unsupported_request_errors(self, v, load=False): + """ + Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_unsupported_request_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_unsupported_request_errors() directly. + + YANG Description: Number of unsupported request errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__unsupported_request_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_unsupported_request_errors(self): + self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_acs_violation_errors(self): + """ + Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64) + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__acs_violation_errors + + def _set_acs_violation_errors(self, v, load=False): + """ + Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_acs_violation_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_acs_violation_errors() directly. + + YANG Description: Number of access control errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__acs_violation_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_acs_violation_errors(self): + self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_internal_errors(self): + """ + Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64) + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + return self.__internal_errors + + def _set_internal_errors(self, v, load=False): + """ + Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_internal_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_internal_errors() directly. + + YANG Description: Number of internal errors detected by PCIe device since the +system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__internal_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_internal_errors(self): + self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_blocked_tlp_errors(self): + """ + Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64) + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + return self.__blocked_tlp_errors + + def _set_blocked_tlp_errors(self, v, load=False): + """ + Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_blocked_tlp_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_blocked_tlp_errors() directly. + + YANG Description: Number of blocked TLP errors detected by PCIe device since +the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__blocked_tlp_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_blocked_tlp_errors(self): + self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_atomic_op_blocked_errors(self): + """ + Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + return self.__atomic_op_blocked_errors + + def _set_atomic_op_blocked_errors(self, v, load=False): + """ + Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_atomic_op_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_atomic_op_blocked_errors() directly. + + YANG Description: Number of atomic operation blocked errors detected by PCIe +device since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__atomic_op_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_atomic_op_blocked_errors(self): + self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + + def _get_tlp_prefix_blocked_errors(self): + """ + Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + return self.__tlp_prefix_blocked_errors + + def _set_tlp_prefix_blocked_errors(self, v, load=False): + """ + Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_tlp_prefix_blocked_errors() directly. + + YANG Description: Number of TLP prefix blocked errors detected by PCIe device +since the system booted, according to PCIe AER driver. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__tlp_prefix_blocked_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_tlp_prefix_blocked_errors(self): + self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False) + + total_errors = __builtin__.property(_get_total_errors) + undefined_errors = __builtin__.property(_get_undefined_errors) + data_link_errors = __builtin__.property(_get_data_link_errors) + surprise_down_errors = __builtin__.property(_get_surprise_down_errors) + poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors) + flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors) + completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors) + completion_abort_errors = __builtin__.property(_get_completion_abort_errors) + unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors) + receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors) + malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors) + ecrc_errors = __builtin__.property(_get_ecrc_errors) + unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors) + acs_violation_errors = __builtin__.property(_get_acs_violation_errors) + internal_errors = __builtin__.property(_get_internal_errors) + blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors) + atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors) + tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors) + + + _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..426d8a1d75604540a04fc92ab9494d9cd330434e --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py @@ -0,0 +1,958 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class temperature(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/state/temperature. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time','__alarm_status','__alarm_threshold','__alarm_severity',) + + _yang_name = 'temperature' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'temperature'] + + def _get_instant(self): + """ + Getter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64) + + YANG Description: The instantaneous value of the statistic. + """ + return self.__instant + + def _set_instant(self, v, load=False): + """ + Setter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_instant is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_instant() directly. + + YANG Description: The instantaneous value of the statistic. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """instant must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__instant = t + if hasattr(self, '_set'): + self._set() + + def _unset_instant(self): + self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_avg(self): + """ + Getter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64) + + YANG Description: The arithmetic mean value of the statistic over the +sampling period. + """ + return self.__avg + + def _set_avg(self, v, load=False): + """ + Setter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_avg is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_avg() directly. + + YANG Description: The arithmetic mean value of the statistic over the +sampling period. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """avg must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__avg = t + if hasattr(self, '_set'): + self._set() + + def _unset_avg(self): + self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_min_(self): + """ + Getter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64) + + YANG Description: The minimum value of the statistic over the sampling +period + """ + return self.__min_ + + def _set_min_(self, v, load=False): + """ + Setter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_min_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_min_() directly. + + YANG Description: The minimum value of the statistic over the sampling +period + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """min_ must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__min_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_min_(self): + self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_max_(self): + """ + Getter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64) + + YANG Description: The maximum value of the statistic over the sampling +period + """ + return self.__max_ + + def _set_max_(self, v, load=False): + """ + Setter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_() directly. + + YANG Description: The maximum value of the statistic over the sampling +period + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_ must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__max_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_(self): + self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_interval(self): + """ + Getter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval) + + YANG Description: If supported by the system, this reports the time interval +over which the min/max/average statistics are computed by +the system. + """ + return self.__interval + + def _set_interval(self, v, load=False): + """ + Setter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval) + If this variable is read-only (config: false) in the + source YANG file, then _set_interval is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_interval() directly. + + YANG Description: If supported by the system, this reports the time interval +over which the min/max/average statistics are computed by +the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """interval must be of a type compatible with oc-types:stat-interval""", + 'defined-type': "oc-types:stat-interval", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)""", + }) + + self.__interval = t + if hasattr(self, '_set'): + self._set() + + def _unset_interval(self): + self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + + + def _get_min_time(self): + """ + Getter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64) + + YANG Description: The absolute time at which the minimum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__min_time + + def _set_min_time(self, v, load=False): + """ + Setter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_min_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_min_time() directly. + + YANG Description: The absolute time at which the minimum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """min_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__min_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_min_time(self): + self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_max_time(self): + """ + Getter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64) + + YANG Description: The absolute time at which the maximum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__max_time + + def _set_max_time(self, v, load=False): + """ + Setter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_time() directly. + + YANG Description: The absolute time at which the maximum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__max_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_time(self): + self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_alarm_status(self): + """ + Getter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean) + + YANG Description: A value of true indicates the alarm has been raised or +asserted. The value should be false when the alarm is +cleared. + """ + return self.__alarm_status + + def _set_alarm_status(self, v, load=False): + """ + Setter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_status() directly. + + YANG Description: A value of true indicates the alarm has been raised or +asserted. The value should be false when the alarm is +cleared. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_status must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__alarm_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_status(self): + self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_alarm_threshold(self): + """ + Getter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32) + + YANG Description: The threshold value that was crossed for this alarm. + """ + return self.__alarm_threshold + + def _set_alarm_threshold(self, v, load=False): + """ + Setter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_threshold is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_threshold() directly. + + YANG Description: The threshold value that was crossed for this alarm. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_threshold must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__alarm_threshold = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_threshold(self): + self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_alarm_severity(self): + """ + Getter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref) + + YANG Description: The severity of the current alarm. + """ + return self.__alarm_severity + + def _set_alarm_severity(self, v, load=False): + """ + Setter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_severity is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_severity() directly. + + YANG Description: The severity of the current alarm. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_severity must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__alarm_severity = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_severity(self): + self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + instant = __builtin__.property(_get_instant) + avg = __builtin__.property(_get_avg) + min_ = __builtin__.property(_get_min_) + max_ = __builtin__.property(_get_max_) + interval = __builtin__.property(_get_interval) + min_time = __builtin__.property(_get_min_time) + max_time = __builtin__.property(_get_max_time) + alarm_status = __builtin__.property(_get_alarm_status) + alarm_threshold = __builtin__.property(_get_alarm_threshold) + alarm_severity = __builtin__.property(_get_alarm_severity) + + + _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ('alarm_status', alarm_status), ('alarm_threshold', alarm_threshold), ('alarm_severity', alarm_severity), ]) + + +class temperature(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/state/temperature. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Temperature in degrees Celsius of the component. Values include +the instantaneous, average, minimum, and maximum statistics. If +avg/min/max statistics are not supported, the target is expected +to just supply the instant value + """ + __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time','__alarm_status','__alarm_threshold','__alarm_severity',) + + _yang_name = 'temperature' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'state', 'temperature'] + + def _get_instant(self): + """ + Getter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64) + + YANG Description: The instantaneous value of the statistic. + """ + return self.__instant + + def _set_instant(self, v, load=False): + """ + Setter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_instant is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_instant() directly. + + YANG Description: The instantaneous value of the statistic. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """instant must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__instant = t + if hasattr(self, '_set'): + self._set() + + def _unset_instant(self): + self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_avg(self): + """ + Getter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64) + + YANG Description: The arithmetic mean value of the statistic over the +sampling period. + """ + return self.__avg + + def _set_avg(self, v, load=False): + """ + Setter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_avg is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_avg() directly. + + YANG Description: The arithmetic mean value of the statistic over the +sampling period. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """avg must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__avg = t + if hasattr(self, '_set'): + self._set() + + def _unset_avg(self): + self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_min_(self): + """ + Getter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64) + + YANG Description: The minimum value of the statistic over the sampling +period + """ + return self.__min_ + + def _set_min_(self, v, load=False): + """ + Setter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_min_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_min_() directly. + + YANG Description: The minimum value of the statistic over the sampling +period + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """min_ must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__min_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_min_(self): + self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_max_(self): + """ + Getter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64) + + YANG Description: The maximum value of the statistic over the sampling +period + """ + return self.__max_ + + def _set_max_(self, v, load=False): + """ + Setter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_ is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_() directly. + + YANG Description: The maximum value of the statistic over the sampling +period + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_ must be of a type compatible with decimal64""", + 'defined-type': "decimal64", + 'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""", + }) + + self.__max_ = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_(self): + self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False) + + + def _get_interval(self): + """ + Getter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval) + + YANG Description: If supported by the system, this reports the time interval +over which the min/max/average statistics are computed by +the system. + """ + return self.__interval + + def _set_interval(self, v, load=False): + """ + Setter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval) + If this variable is read-only (config: false) in the + source YANG file, then _set_interval is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_interval() directly. + + YANG Description: If supported by the system, this reports the time interval +over which the min/max/average statistics are computed by +the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """interval must be of a type compatible with oc-types:stat-interval""", + 'defined-type': "oc-types:stat-interval", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)""", + }) + + self.__interval = t + if hasattr(self, '_set'): + self._set() + + def _unset_interval(self): + self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False) + + + def _get_min_time(self): + """ + Getter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64) + + YANG Description: The absolute time at which the minimum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__min_time + + def _set_min_time(self, v, load=False): + """ + Setter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_min_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_min_time() directly. + + YANG Description: The absolute time at which the minimum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """min_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__min_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_min_time(self): + self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_max_time(self): + """ + Getter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64) + + YANG Description: The absolute time at which the maximum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__max_time + + def _set_max_time(self, v, load=False): + """ + Setter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_max_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_max_time() directly. + + YANG Description: The absolute time at which the maximum value occurred. +The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """max_time must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__max_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_max_time(self): + self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_alarm_status(self): + """ + Getter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean) + + YANG Description: A value of true indicates the alarm has been raised or +asserted. The value should be false when the alarm is +cleared. + """ + return self.__alarm_status + + def _set_alarm_status(self, v, load=False): + """ + Setter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_status() directly. + + YANG Description: A value of true indicates the alarm has been raised or +asserted. The value should be false when the alarm is +cleared. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_status must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""", + }) + + self.__alarm_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_status(self): + self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False) + + + def _get_alarm_threshold(self): + """ + Getter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32) + + YANG Description: The threshold value that was crossed for this alarm. + """ + return self.__alarm_threshold + + def _set_alarm_threshold(self, v, load=False): + """ + Setter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_threshold is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_threshold() directly. + + YANG Description: The threshold value that was crossed for this alarm. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_threshold must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""", + }) + + self.__alarm_threshold = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_threshold(self): + self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False) + + + def _get_alarm_severity(self): + """ + Getter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref) + + YANG Description: The severity of the current alarm. + """ + return self.__alarm_severity + + def _set_alarm_severity(self, v, load=False): + """ + Setter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_alarm_severity is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_alarm_severity() directly. + + YANG Description: The severity of the current alarm. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """alarm_severity must be of a type compatible with identityref""", + 'defined-type': "openconfig-platform:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""", + }) + + self.__alarm_severity = t + if hasattr(self, '_set'): + self._set() + + def _unset_alarm_severity(self): + self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False) + + instant = __builtin__.property(_get_instant) + avg = __builtin__.property(_get_avg) + min_ = __builtin__.property(_get_min_) + max_ = __builtin__.property(_get_max_) + interval = __builtin__.property(_get_interval) + min_time = __builtin__.property(_get_min_time) + max_time = __builtin__.property(_get_max_time) + alarm_status = __builtin__.property(_get_alarm_status) + alarm_threshold = __builtin__.property(_get_alarm_threshold) + alarm_severity = __builtin__.property(_get_alarm_severity) + + + _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ('alarm_status', alarm_status), ('alarm_threshold', alarm_threshold), ('alarm_severity', alarm_severity), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py b/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..84f152b6c379edb6eb7c78e7b8e66f36dd47f23a --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class storage(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/storage. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for storage components + """ + _pyangbind_elements = {} + + + +class storage(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/storage. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Data for storage components + """ + _pyangbind_elements = {} + + + diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5c5d7cdc87ebbb50448438f8725da5b81848b3f7 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import subcomponent +class subcomponents(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/subcomponents. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for subcomponent references + """ + __slots__ = ('_path_helper', '_extmethods', '__subcomponent',) + + _yang_name = 'subcomponents' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents'] + + def _get_subcomponent(self): + """ + Getter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list) + + YANG Description: List of subcomponent references + """ + return self.__subcomponent + + def _set_subcomponent(self, v, load=False): + """ + Setter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_subcomponent is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subcomponent() directly. + + YANG Description: List of subcomponent references + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subcomponent must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__subcomponent = t + if hasattr(self, '_set'): + self._set() + + def _unset_subcomponent(self): + self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + subcomponent = __builtin__.property(_get_subcomponent, _set_subcomponent) + + + _pyangbind_elements = OrderedDict([('subcomponent', subcomponent), ]) + + +from . import subcomponent +class subcomponents(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/subcomponents. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for subcomponent references + """ + __slots__ = ('_path_helper', '_extmethods', '__subcomponent',) + + _yang_name = 'subcomponents' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents'] + + def _get_subcomponent(self): + """ + Getter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list) + + YANG Description: List of subcomponent references + """ + return self.__subcomponent + + def _set_subcomponent(self, v, load=False): + """ + Setter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_subcomponent is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subcomponent() directly. + + YANG Description: List of subcomponent references + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subcomponent must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""", + }) + + self.__subcomponent = t + if hasattr(self, '_set'): + self._set() + + def _unset_subcomponent(self): + self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True) + + subcomponent = __builtin__.property(_get_subcomponent, _set_subcomponent) + + + _pyangbind_elements = OrderedDict([('subcomponent', subcomponent), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8f187809f977bd6fa9cc12bc81196dca7d51b9a1 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class subcomponent(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of subcomponent references + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'subcomponent' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref) + + YANG Description: Reference to the name list key + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name list key + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container) + + YANG Description: Configuration data for the subcomponent + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container) + + YANG Description: Operational state data for the subcomponent + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + +from . import config +from . import state +class subcomponent(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: List of subcomponent references + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',) + + _yang_name = 'subcomponent' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref) + + YANG Description: Reference to the name list key + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name list key + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container) + + YANG Description: Configuration data for the subcomponent + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container) + + YANG Description: Operational state data for the subcomponent + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..97f1e2adc9782da13a0285f91ca6a8662578c718 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for the subcomponent + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref) + + YANG Description: Reference to the name of the subcomponent + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name of the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for the subcomponent + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref) + + YANG Description: Reference to the name of the subcomponent + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name of the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..fe204b7573784e4b542a53eac6c3ad9fbe15e89f --- /dev/null +++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for the subcomponent + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref) + + YANG Description: Reference to the name of the subcomponent + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name of the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + name = __builtin__.property(_get_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for the subcomponent + """ + __slots__ = ('_path_helper', '_extmethods', '__name',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/platform' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['components', 'component', 'subcomponents', 'subcomponent', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref) + + YANG Description: Reference to the name of the subcomponent + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: Reference to the name of the subcomponent + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False) + + name = __builtin__.property(_get_name) + + + _pyangbind_elements = OrderedDict([('name', name), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..af0371e3f1870194ab8abd48a8a57773453e59ac --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/__init__.py @@ -0,0 +1,116 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import interface +class interfaces(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top level container for interfaces, including configuration +and state data. + """ + __slots__ = ('_path_helper', '_extmethods', '__interface',) + + _yang_name = 'interfaces' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__interface = YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces'] + + def _get_interface(self): + """ + Getter method for interface, mapped from YANG variable /interfaces/interface (list) + + YANG Description: The list of named interfaces on the device. + """ + return self.__interface + + def _set_interface(self, v, load=False): + """ + Setter method for interface, mapped from YANG variable /interfaces/interface (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_interface is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_interface() directly. + + YANG Description: The list of named interfaces on the device. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """interface must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)""", + }) + + self.__interface = t + if hasattr(self, '_set'): + self._set() + + def _unset_interface(self): + self.__interface = YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + + interface = __builtin__.property(_get_interface, _set_interface) + + + _pyangbind_elements = OrderedDict([('interface', interface), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7850395040d98f3431c7faa94fbeaedbf55e5b32 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py @@ -0,0 +1,327 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +from . import hold_time +from . import subinterfaces +from . import ethernet +class interface(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The list of named interfaces on the device. + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__hold_time','__subinterfaces','__ethernet',) + + _yang_name = 'interface' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__hold_time = YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__subinterfaces = YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__ethernet = YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /interfaces/interface/name (leafref) + + YANG Description: References the name of the interface + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /interfaces/interface/name (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: References the name of the interface + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /interfaces/interface/config (container) + + YANG Description: Configurable items at the global, physical interface +level + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /interfaces/interface/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configurable items at the global, physical interface +level + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /interfaces/interface/state (container) + + YANG Description: Operational state data at the global interface level + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /interfaces/interface/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data at the global interface level + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_hold_time(self): + """ + Getter method for hold_time, mapped from YANG variable /interfaces/interface/hold_time (container) + + YANG Description: Top-level container for hold-time settings to enable +dampening advertisements of interface transitions. + """ + return self.__hold_time + + def _set_hold_time(self, v, load=False): + """ + Setter method for hold_time, mapped from YANG variable /interfaces/interface/hold_time (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_hold_time is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hold_time() directly. + + YANG Description: Top-level container for hold-time settings to enable +dampening advertisements of interface transitions. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hold_time must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__hold_time = t + if hasattr(self, '_set'): + self._set() + + def _unset_hold_time(self): + self.__hold_time = YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_subinterfaces(self): + """ + Getter method for subinterfaces, mapped from YANG variable /interfaces/interface/subinterfaces (container) + + YANG Description: Enclosing container for the list of subinterfaces associated +with a physical interface + """ + return self.__subinterfaces + + def _set_subinterfaces(self, v, load=False): + """ + Setter method for subinterfaces, mapped from YANG variable /interfaces/interface/subinterfaces (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_subinterfaces is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subinterfaces() directly. + + YANG Description: Enclosing container for the list of subinterfaces associated +with a physical interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subinterfaces must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__subinterfaces = t + if hasattr(self, '_set'): + self._set() + + def _unset_subinterfaces(self): + self.__subinterfaces = YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_ethernet(self): + """ + Getter method for ethernet, mapped from YANG variable /interfaces/interface/ethernet (container) + + YANG Description: Top-level container for ethernet configuration +and state + """ + return self.__ethernet + + def _set_ethernet(self, v, load=False): + """ + Setter method for ethernet, mapped from YANG variable /interfaces/interface/ethernet (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_ethernet is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ethernet() directly. + + YANG Description: Top-level container for ethernet configuration +and state + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ethernet must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""", + }) + + self.__ethernet = t + if hasattr(self, '_set'): + self._set() + + def _unset_ethernet(self): + self.__ethernet = YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + hold_time = __builtin__.property(_get_hold_time, _set_hold_time) + subinterfaces = __builtin__.property(_get_subinterfaces, _set_subinterfaces) + ethernet = __builtin__.property(_get_ethernet, _set_ethernet) + + + _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('hold_time', hold_time), ('subinterfaces', subinterfaces), ('ethernet', ethernet), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..84dbcfaec66e765d244886bc83622aee2e31c7f4 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py @@ -0,0 +1,476 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configurable items at the global, physical interface +level + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True) + self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True) + self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'config'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /interfaces/interface/config/name (string) + + YANG Description: The name of the interface. + +A device MAY restrict the allowed values for this leaf, +possibly depending on the type of the interface. +For system-controlled interfaces, this leaf is the +device-specific name of the interface. The 'config false' +list interfaces/interface[name]/state contains the currently +existing interfaces on the device. + +If a client tries to create configuration for a +system-controlled interface that is not present in the +corresponding state list, the server MAY reject +the request if the implementation does not support +pre-provisioning of interfaces or if the name refers to +an interface that can never exist in the system. A +NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + +The IETF model in RFC 7223 provides YANG features for the +following (i.e., pre-provisioning and arbitrary-names), +however they are omitted here: + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + +When a configured user-controlled interface is created by +the system, it is instantiated with the same name in the +/interfaces/interface[name]/state list. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /interfaces/interface/config/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: The name of the interface. + +A device MAY restrict the allowed values for this leaf, +possibly depending on the type of the interface. +For system-controlled interfaces, this leaf is the +device-specific name of the interface. The 'config false' +list interfaces/interface[name]/state contains the currently +existing interfaces on the device. + +If a client tries to create configuration for a +system-controlled interface that is not present in the +corresponding state list, the server MAY reject +the request if the implementation does not support +pre-provisioning of interfaces or if the name refers to +an interface that can never exist in the system. A +NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + +The IETF model in RFC 7223 provides YANG features for the +following (i.e., pre-provisioning and arbitrary-names), +however they are omitted here: + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + +When a configured user-controlled interface is created by +the system, it is instantiated with the same name in the +/interfaces/interface[name]/state list. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + + + def _get_type(self): + """ + Getter method for type, mapped from YANG variable /interfaces/interface/config/type (identityref) + + YANG Description: The type of the interface. + +When an interface entry is created, a server MAY +initialize the type leaf with a valid value, e.g., if it +is possible to derive the type from the name of the +interface. + +If a client tries to set the type of an interface to a +value that can never be used by the system, e.g., if the +type is not supported or if the type does not match the +name of the interface, the server MUST reject the request. +A NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + """ + return self.__type + + def _set_type(self, v, load=False): + """ + Setter method for type, mapped from YANG variable /interfaces/interface/config/type (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_type is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_type() directly. + + YANG Description: The type of the interface. + +When an interface entry is created, a server MAY +initialize the type leaf with a valid value, e.g., if it +is possible to derive the type from the name of the +interface. + +If a client tries to set the type of an interface to a +value that can never be used by the system, e.g., if the +type is not supported or if the type does not match the +name of the interface, the server MUST reject the request. +A NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """type must be of a type compatible with identityref""", + 'defined-type': "openconfig-interfaces:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True)""", + }) + + self.__type = t + if hasattr(self, '_set'): + self._set() + + def _unset_type(self): + self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True) + + + def _get_mtu(self): + """ + Getter method for mtu, mapped from YANG variable /interfaces/interface/config/mtu (uint16) + + YANG Description: Set the max transmission unit size in octets +for the physical interface. If this is not set, the mtu is +set to the operational default -- e.g., 1514 bytes on an +Ethernet interface. + """ + return self.__mtu + + def _set_mtu(self, v, load=False): + """ + Setter method for mtu, mapped from YANG variable /interfaces/interface/config/mtu (uint16) + If this variable is read-only (config: false) in the + source YANG file, then _set_mtu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mtu() directly. + + YANG Description: Set the max transmission unit size in octets +for the physical interface. If this is not set, the mtu is +set to the operational default -- e.g., 1514 bytes on an +Ethernet interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mtu must be of a type compatible with uint16""", + 'defined-type': "uint16", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True)""", + }) + + self.__mtu = t + if hasattr(self, '_set'): + self._set() + + def _unset_mtu(self): + self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True) + + + def _get_loopback_mode(self): + """ + Getter method for loopback_mode, mapped from YANG variable /interfaces/interface/config/loopback_mode (boolean) + + YANG Description: When set to true, the interface is logically looped back, +such that packets that are forwarded via the interface +are received on the same interface. + """ + return self.__loopback_mode + + def _set_loopback_mode(self, v, load=False): + """ + Setter method for loopback_mode, mapped from YANG variable /interfaces/interface/config/loopback_mode (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_loopback_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_loopback_mode() directly. + + YANG Description: When set to true, the interface is logically looped back, +such that packets that are forwarded via the interface +are received on the same interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """loopback_mode must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""", + }) + + self.__loopback_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_loopback_mode(self): + self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /interfaces/interface/config/description (string) + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /interfaces/interface/config/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + + + def _get_enabled(self): + """ + Getter method for enabled, mapped from YANG variable /interfaces/interface/config/enabled (boolean) + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + return self.__enabled + + def _set_enabled(self, v, load=False): + """ + Setter method for enabled, mapped from YANG variable /interfaces/interface/config/enabled (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enabled is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enabled() directly. + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enabled must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""", + }) + + self.__enabled = t + if hasattr(self, '_set'): + self._set() + + def _unset_enabled(self): + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + + name = __builtin__.property(_get_name, _set_name) + type = __builtin__.property(_get_type, _set_type) + mtu = __builtin__.property(_get_mtu, _set_mtu) + loopback_mode = __builtin__.property(_get_loopback_mode, _set_loopback_mode) + description = __builtin__.property(_get_description, _set_description) + enabled = __builtin__.property(_get_enabled, _set_enabled) + + + _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0d56776a7581d6f16a0059ec7f3909e4aa80c41b --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class ethernet(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top-level container for ethernet configuration +and state + """ + __slots__ = ('_path_helper', '_extmethods', '__config','__state',) + + _yang_name = 'ethernet' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'ethernet'] + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /interfaces/interface/ethernet/config (container) + + YANG Description: Configuration data for ethernet interfaces + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /interfaces/interface/ethernet/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for ethernet interfaces + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /interfaces/interface/ethernet/state (container) + + YANG Description: State variables for Ethernet interfaces + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /interfaces/interface/ethernet/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: State variables for Ethernet interfaces + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True) + + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d07a615a7896c294e004680cc920859df3f80b15 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py @@ -0,0 +1,416 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for ethernet interfaces + """ + __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True) + self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True) + self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'ethernet', 'config'] + + def _get_mac_address(self): + """ + Getter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address) + + YANG Description: Assigns a MAC address to the Ethernet interface. If not +specified, the corresponding operational state leaf is +expected to show the system-assigned MAC address. + """ + return self.__mac_address + + def _set_mac_address(self, v, load=False): + """ + Setter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address) + If this variable is read-only (config: false) in the + source YANG file, then _set_mac_address is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mac_address() directly. + + YANG Description: Assigns a MAC address to the Ethernet interface. If not +specified, the corresponding operational state leaf is +expected to show the system-assigned MAC address. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""", + 'defined-type': "oc-yang:mac-address", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True)""", + }) + + self.__mac_address = t + if hasattr(self, '_set'): + self._set() + + def _unset_mac_address(self): + self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True) + + + def _get_auto_negotiate(self): + """ + Getter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/config/auto_negotiate (boolean) + + YANG Description: Set to TRUE to request the interface to auto-negotiate +transmission parameters with its peer interface. When +set to FALSE, the transmission parameters are specified +manually. + """ + return self.__auto_negotiate + + def _set_auto_negotiate(self, v, load=False): + """ + Setter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/config/auto_negotiate (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_auto_negotiate is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_auto_negotiate() directly. + + YANG Description: Set to TRUE to request the interface to auto-negotiate +transmission parameters with its peer interface. When +set to FALSE, the transmission parameters are specified +manually. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """auto_negotiate must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""", + }) + + self.__auto_negotiate = t + if hasattr(self, '_set'): + self._set() + + def _unset_auto_negotiate(self): + self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + + + def _get_standalone_link_training(self): + """ + Getter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/config/standalone_link_training (boolean) + + YANG Description: Link training is automatic tuning of the SerDes transmit and +receive parameters to ensure an optimal connection over copper +links. It is normally run as part of the auto negotiation +sequence as specified in IEEE 802.3 Clause 73. + +Standalone link training is used when full auto negotiation is +not desired on an Ethernet link but link training is needed. +It is configured by setting the standalone-link-training leaf +to TRUE and augo-negotiate leaf to FALSE. + +Note: If auto-negotiate is true, then the value of standalone +link training leaf will be ignored. + """ + return self.__standalone_link_training + + def _set_standalone_link_training(self, v, load=False): + """ + Setter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/config/standalone_link_training (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_standalone_link_training is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_standalone_link_training() directly. + + YANG Description: Link training is automatic tuning of the SerDes transmit and +receive parameters to ensure an optimal connection over copper +links. It is normally run as part of the auto negotiation +sequence as specified in IEEE 802.3 Clause 73. + +Standalone link training is used when full auto negotiation is +not desired on an Ethernet link but link training is needed. +It is configured by setting the standalone-link-training leaf +to TRUE and augo-negotiate leaf to FALSE. + +Note: If auto-negotiate is true, then the value of standalone +link training leaf will be ignored. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """standalone_link_training must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""", + }) + + self.__standalone_link_training = t + if hasattr(self, '_set'): + self._set() + + def _unset_standalone_link_training(self): + self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + + + def _get_duplex_mode(self): + """ + Getter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/config/duplex_mode (enumeration) + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +duplex mode that will be advertised to the peer. If +unspecified, the interface should negotiate the duplex mode +directly (typically full-duplex). When auto-negotiate is +FALSE, this sets the duplex mode on the interface directly. + """ + return self.__duplex_mode + + def _set_duplex_mode(self, v, load=False): + """ + Setter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/config/duplex_mode (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_duplex_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_duplex_mode() directly. + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +duplex mode that will be advertised to the peer. If +unspecified, the interface should negotiate the duplex mode +directly (typically full-duplex). When auto-negotiate is +FALSE, this sets the duplex mode on the interface directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """duplex_mode must be of a type compatible with enumeration""", + 'defined-type': "openconfig-if-ethernet:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True)""", + }) + + self.__duplex_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_duplex_mode(self): + self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True) + + + def _get_port_speed(self): + """ + Getter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/config/port_speed (identityref) + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +port-speed mode that will be advertised to the peer for +negotiation. If unspecified, it is expected that the +interface will select the highest speed available based on +negotiation. When auto-negotiate is set to FALSE, sets the +link speed to a fixed value -- supported values are defined +by ETHERNET_SPEED identities + """ + return self.__port_speed + + def _set_port_speed(self, v, load=False): + """ + Setter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/config/port_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_port_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port_speed() directly. + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +port-speed mode that will be advertised to the peer for +negotiation. If unspecified, it is expected that the +interface will select the highest speed available based on +negotiation. When auto-negotiate is set to FALSE, sets the +link speed to a fixed value -- supported values are defined +by ETHERNET_SPEED identities + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-if-ethernet:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)""", + }) + + self.__port_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_port_speed(self): + self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + + + def _get_enable_flow_control(self): + """ + Getter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/config/enable_flow_control (boolean) + + YANG Description: Enable or disable flow control for this interface. +Ethernet flow control is a mechanism by which a receiver +may send PAUSE frames to a sender to stop transmission for +a specified time. + +This setting should override auto-negotiated flow control +settings. If left unspecified, and auto-negotiate is TRUE, +flow control mode is negotiated with the peer interface. + """ + return self.__enable_flow_control + + def _set_enable_flow_control(self, v, load=False): + """ + Setter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/config/enable_flow_control (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enable_flow_control is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enable_flow_control() directly. + + YANG Description: Enable or disable flow control for this interface. +Ethernet flow control is a mechanism by which a receiver +may send PAUSE frames to a sender to stop transmission for +a specified time. + +This setting should override auto-negotiated flow control +settings. If left unspecified, and auto-negotiate is TRUE, +flow control mode is negotiated with the peer interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enable_flow_control must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""", + }) + + self.__enable_flow_control = t + if hasattr(self, '_set'): + self._set() + + def _unset_enable_flow_control(self): + self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True) + + + def _get_fec_mode(self): + """ + Getter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/config/fec_mode (identityref) + + YANG Description: The FEC mode applied to the physical channels associated with +the interface. + """ + return self.__fec_mode + + def _set_fec_mode(self, v, load=False): + """ + Setter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/config/fec_mode (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_fec_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fec_mode() directly. + + YANG Description: The FEC mode applied to the physical channels associated with +the interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fec_mode must be of a type compatible with identityref""", + 'defined-type': "openconfig-if-ethernet:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)""", + }) + + self.__fec_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_fec_mode(self): + self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True) + + mac_address = __builtin__.property(_get_mac_address, _set_mac_address) + auto_negotiate = __builtin__.property(_get_auto_negotiate, _set_auto_negotiate) + standalone_link_training = __builtin__.property(_get_standalone_link_training, _set_standalone_link_training) + duplex_mode = __builtin__.property(_get_duplex_mode, _set_duplex_mode) + port_speed = __builtin__.property(_get_port_speed, _set_port_speed) + enable_flow_control = __builtin__.property(_get_enable_flow_control, _set_enable_flow_control) + fec_mode = __builtin__.property(_get_fec_mode, _set_fec_mode) + + + _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..07b61c4c08146ce5641faf9efa6188fe84d7d55c --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py @@ -0,0 +1,583 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import counters +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: State variables for Ethernet interfaces + """ + __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode','__hw_mac_address','__negotiated_duplex_mode','__negotiated_port_speed','__counters',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'ethernet', 'state'] + + def _get_mac_address(self): + """ + Getter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address) + + YANG Description: Assigns a MAC address to the Ethernet interface. If not +specified, the corresponding operational state leaf is +expected to show the system-assigned MAC address. + """ + return self.__mac_address + + def _set_mac_address(self, v, load=False): + """ + Setter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address) + If this variable is read-only (config: false) in the + source YANG file, then _set_mac_address is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mac_address() directly. + + YANG Description: Assigns a MAC address to the Ethernet interface. If not +specified, the corresponding operational state leaf is +expected to show the system-assigned MAC address. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""", + 'defined-type': "oc-yang:mac-address", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)""", + }) + + self.__mac_address = t + if hasattr(self, '_set'): + self._set() + + def _unset_mac_address(self): + self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + + + def _get_auto_negotiate(self): + """ + Getter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/state/auto_negotiate (boolean) + + YANG Description: Set to TRUE to request the interface to auto-negotiate +transmission parameters with its peer interface. When +set to FALSE, the transmission parameters are specified +manually. + """ + return self.__auto_negotiate + + def _set_auto_negotiate(self, v, load=False): + """ + Setter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/state/auto_negotiate (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_auto_negotiate is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_auto_negotiate() directly. + + YANG Description: Set to TRUE to request the interface to auto-negotiate +transmission parameters with its peer interface. When +set to FALSE, the transmission parameters are specified +manually. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """auto_negotiate must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""", + }) + + self.__auto_negotiate = t + if hasattr(self, '_set'): + self._set() + + def _unset_auto_negotiate(self): + self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + + + def _get_standalone_link_training(self): + """ + Getter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/state/standalone_link_training (boolean) + + YANG Description: Link training is automatic tuning of the SerDes transmit and +receive parameters to ensure an optimal connection over copper +links. It is normally run as part of the auto negotiation +sequence as specified in IEEE 802.3 Clause 73. + +Standalone link training is used when full auto negotiation is +not desired on an Ethernet link but link training is needed. +It is configured by setting the standalone-link-training leaf +to TRUE and augo-negotiate leaf to FALSE. + +Note: If auto-negotiate is true, then the value of standalone +link training leaf will be ignored. + """ + return self.__standalone_link_training + + def _set_standalone_link_training(self, v, load=False): + """ + Setter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/state/standalone_link_training (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_standalone_link_training is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_standalone_link_training() directly. + + YANG Description: Link training is automatic tuning of the SerDes transmit and +receive parameters to ensure an optimal connection over copper +links. It is normally run as part of the auto negotiation +sequence as specified in IEEE 802.3 Clause 73. + +Standalone link training is used when full auto negotiation is +not desired on an Ethernet link but link training is needed. +It is configured by setting the standalone-link-training leaf +to TRUE and augo-negotiate leaf to FALSE. + +Note: If auto-negotiate is true, then the value of standalone +link training leaf will be ignored. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """standalone_link_training must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""", + }) + + self.__standalone_link_training = t + if hasattr(self, '_set'): + self._set() + + def _unset_standalone_link_training(self): + self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + + + def _get_duplex_mode(self): + """ + Getter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/duplex_mode (enumeration) + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +duplex mode that will be advertised to the peer. If +unspecified, the interface should negotiate the duplex mode +directly (typically full-duplex). When auto-negotiate is +FALSE, this sets the duplex mode on the interface directly. + """ + return self.__duplex_mode + + def _set_duplex_mode(self, v, load=False): + """ + Setter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/duplex_mode (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_duplex_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_duplex_mode() directly. + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +duplex mode that will be advertised to the peer. If +unspecified, the interface should negotiate the duplex mode +directly (typically full-duplex). When auto-negotiate is +FALSE, this sets the duplex mode on the interface directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """duplex_mode must be of a type compatible with enumeration""", + 'defined-type': "openconfig-if-ethernet:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)""", + }) + + self.__duplex_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_duplex_mode(self): + self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + + + def _get_port_speed(self): + """ + Getter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/port_speed (identityref) + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +port-speed mode that will be advertised to the peer for +negotiation. If unspecified, it is expected that the +interface will select the highest speed available based on +negotiation. When auto-negotiate is set to FALSE, sets the +link speed to a fixed value -- supported values are defined +by ETHERNET_SPEED identities + """ + return self.__port_speed + + def _set_port_speed(self, v, load=False): + """ + Setter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/port_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_port_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port_speed() directly. + + YANG Description: When auto-negotiate is TRUE, this optionally sets the +port-speed mode that will be advertised to the peer for +negotiation. If unspecified, it is expected that the +interface will select the highest speed available based on +negotiation. When auto-negotiate is set to FALSE, sets the +link speed to a fixed value -- supported values are defined +by ETHERNET_SPEED identities + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-if-ethernet:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""", + }) + + self.__port_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_port_speed(self): + self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + + + def _get_enable_flow_control(self): + """ + Getter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/state/enable_flow_control (boolean) + + YANG Description: Enable or disable flow control for this interface. +Ethernet flow control is a mechanism by which a receiver +may send PAUSE frames to a sender to stop transmission for +a specified time. + +This setting should override auto-negotiated flow control +settings. If left unspecified, and auto-negotiate is TRUE, +flow control mode is negotiated with the peer interface. + """ + return self.__enable_flow_control + + def _set_enable_flow_control(self, v, load=False): + """ + Setter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/state/enable_flow_control (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enable_flow_control is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enable_flow_control() directly. + + YANG Description: Enable or disable flow control for this interface. +Ethernet flow control is a mechanism by which a receiver +may send PAUSE frames to a sender to stop transmission for +a specified time. + +This setting should override auto-negotiated flow control +settings. If left unspecified, and auto-negotiate is TRUE, +flow control mode is negotiated with the peer interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enable_flow_control must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""", + }) + + self.__enable_flow_control = t + if hasattr(self, '_set'): + self._set() + + def _unset_enable_flow_control(self): + self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False) + + + def _get_fec_mode(self): + """ + Getter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/state/fec_mode (identityref) + + YANG Description: The FEC mode applied to the physical channels associated with +the interface. + """ + return self.__fec_mode + + def _set_fec_mode(self, v, load=False): + """ + Setter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/state/fec_mode (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_fec_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_fec_mode() directly. + + YANG Description: The FEC mode applied to the physical channels associated with +the interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """fec_mode must be of a type compatible with identityref""", + 'defined-type': "openconfig-if-ethernet:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""", + }) + + self.__fec_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_fec_mode(self): + self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + + + def _get_hw_mac_address(self): + """ + Getter method for hw_mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address) + + YANG Description: Represents the 'burned-in', or system-assigned, MAC +address for the Ethernet interface. + """ + return self.__hw_mac_address + + def _set_hw_mac_address(self, v, load=False): + """ + Setter method for hw_mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address) + If this variable is read-only (config: false) in the + source YANG file, then _set_hw_mac_address is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hw_mac_address() directly. + + YANG Description: Represents the 'burned-in', or system-assigned, MAC +address for the Ethernet interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hw_mac_address must be of a type compatible with oc-yang:mac-address""", + 'defined-type': "oc-yang:mac-address", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)""", + }) + + self.__hw_mac_address = t + if hasattr(self, '_set'): + self._set() + + def _unset_hw_mac_address(self): + self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False) + + + def _get_negotiated_duplex_mode(self): + """ + Getter method for negotiated_duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration) + + YANG Description: When auto-negotiate is set to TRUE, and the interface has +completed auto-negotiation with the remote peer, this value +shows the duplex mode that has been negotiated. + """ + return self.__negotiated_duplex_mode + + def _set_negotiated_duplex_mode(self, v, load=False): + """ + Setter method for negotiated_duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_negotiated_duplex_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_negotiated_duplex_mode() directly. + + YANG Description: When auto-negotiate is set to TRUE, and the interface has +completed auto-negotiation with the remote peer, this value +shows the duplex mode that has been negotiated. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """negotiated_duplex_mode must be of a type compatible with enumeration""", + 'defined-type': "openconfig-if-ethernet:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)""", + }) + + self.__negotiated_duplex_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_negotiated_duplex_mode(self): + self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False) + + + def _get_negotiated_port_speed(self): + """ + Getter method for negotiated_port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_port_speed (identityref) + + YANG Description: When auto-negotiate is set to TRUE, and the interface has +completed auto-negotiation with the remote peer, this value +shows the interface speed that has been negotiated. + """ + return self.__negotiated_port_speed + + def _set_negotiated_port_speed(self, v, load=False): + """ + Setter method for negotiated_port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_port_speed (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_negotiated_port_speed is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_negotiated_port_speed() directly. + + YANG Description: When auto-negotiate is set to TRUE, and the interface has +completed auto-negotiation with the remote peer, this value +shows the interface speed that has been negotiated. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """negotiated_port_speed must be of a type compatible with identityref""", + 'defined-type': "openconfig-if-ethernet:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""", + }) + + self.__negotiated_port_speed = t + if hasattr(self, '_set'): + self._set() + + def _unset_negotiated_port_speed(self): + self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False) + + + def _get_counters(self): + """ + Getter method for counters, mapped from YANG variable /interfaces/interface/ethernet/state/counters (container) + + YANG Description: Ethernet interface counters + """ + return self.__counters + + def _set_counters(self, v, load=False): + """ + Setter method for counters, mapped from YANG variable /interfaces/interface/ethernet/state/counters (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_counters is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_counters() directly. + + YANG Description: Ethernet interface counters + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """counters must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False)""", + }) + + self.__counters = t + if hasattr(self, '_set'): + self._set() + + def _unset_counters(self): + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False) + + mac_address = __builtin__.property(_get_mac_address) + auto_negotiate = __builtin__.property(_get_auto_negotiate) + standalone_link_training = __builtin__.property(_get_standalone_link_training) + duplex_mode = __builtin__.property(_get_duplex_mode) + port_speed = __builtin__.property(_get_port_speed) + enable_flow_control = __builtin__.property(_get_enable_flow_control) + fec_mode = __builtin__.property(_get_fec_mode) + hw_mac_address = __builtin__.property(_get_hw_mac_address) + negotiated_duplex_mode = __builtin__.property(_get_negotiated_duplex_mode) + negotiated_port_speed = __builtin__.property(_get_negotiated_port_speed) + counters = __builtin__.property(_get_counters) + + + _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ('hw_mac_address', hw_mac_address), ('negotiated_duplex_mode', negotiated_duplex_mode), ('negotiated_port_speed', negotiated_port_speed), ('counters', counters), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7387174585ced25cd6461839f76702d29e434ceb --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py @@ -0,0 +1,951 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class counters(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/state/counters. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Ethernet interface counters + """ + __slots__ = ('_path_helper', '_extmethods', '__in_mac_control_frames','__in_mac_pause_frames','__in_oversize_frames','__in_undersize_frames','__in_jabber_frames','__in_fragment_frames','__in_8021q_frames','__in_crc_errors','__in_block_errors','__in_carrier_errors','__in_interrupted_tx','__in_late_collision','__in_mac_errors_rx','__in_single_collision','__in_symbol_error','__in_maxsize_exceeded','__out_mac_control_frames','__out_mac_pause_frames','__out_8021q_frames','__out_mac_errors_tx',) + + _yang_name = 'counters' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'ethernet', 'state', 'counters'] + + def _get_in_mac_control_frames(self): + """ + Getter method for in_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64) + + YANG Description: MAC layer control frames received on the interface + """ + return self.__in_mac_control_frames + + def _set_in_mac_control_frames(self, v, load=False): + """ + Setter method for in_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_mac_control_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_mac_control_frames() directly. + + YANG Description: MAC layer control frames received on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_mac_control_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_mac_control_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_mac_control_frames(self): + self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_mac_pause_frames(self): + """ + Getter method for in_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64) + + YANG Description: MAC layer PAUSE frames received on the interface + """ + return self.__in_mac_pause_frames + + def _set_in_mac_pause_frames(self, v, load=False): + """ + Setter method for in_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_mac_pause_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_mac_pause_frames() directly. + + YANG Description: MAC layer PAUSE frames received on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_mac_pause_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_mac_pause_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_mac_pause_frames(self): + self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_oversize_frames(self): + """ + Getter method for in_oversize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64) + + YANG Description: The total number of frames received that were +longer than 1518 octets (excluding framing bits, +but including FCS octets) and were otherwise +well formed. + """ + return self.__in_oversize_frames + + def _set_in_oversize_frames(self, v, load=False): + """ + Setter method for in_oversize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_oversize_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_oversize_frames() directly. + + YANG Description: The total number of frames received that were +longer than 1518 octets (excluding framing bits, +but including FCS octets) and were otherwise +well formed. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_oversize_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_oversize_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_oversize_frames(self): + self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_undersize_frames(self): + """ + Getter method for in_undersize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64) + + YANG Description: The total number of frames received that were +less than 64 octets long (excluding framing bits, +but including FCS octets) and were otherwise well +formed. + """ + return self.__in_undersize_frames + + def _set_in_undersize_frames(self, v, load=False): + """ + Setter method for in_undersize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_undersize_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_undersize_frames() directly. + + YANG Description: The total number of frames received that were +less than 64 octets long (excluding framing bits, +but including FCS octets) and were otherwise well +formed. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_undersize_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_undersize_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_undersize_frames(self): + self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_jabber_frames(self): + """ + Getter method for in_jabber_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64) + + YANG Description: Number of jabber frames received on the +interface. Jabber frames are typically defined as oversize +frames which also have a bad CRC. Implementations may use +slightly different definitions of what constitutes a jabber +frame. Often indicative of a NIC hardware problem. + """ + return self.__in_jabber_frames + + def _set_in_jabber_frames(self, v, load=False): + """ + Setter method for in_jabber_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_jabber_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_jabber_frames() directly. + + YANG Description: Number of jabber frames received on the +interface. Jabber frames are typically defined as oversize +frames which also have a bad CRC. Implementations may use +slightly different definitions of what constitutes a jabber +frame. Often indicative of a NIC hardware problem. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_jabber_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_jabber_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_jabber_frames(self): + self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_fragment_frames(self): + """ + Getter method for in_fragment_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64) + + YANG Description: The total number of frames received that were less than +64 octets in length (excluding framing bits but including +FCS octets) and had either a bad Frame Check Sequence +(FCS) with an integral number of octets (FCS Error) or a +bad FCS with a non-integral number of octets (Alignment +Error). + """ + return self.__in_fragment_frames + + def _set_in_fragment_frames(self, v, load=False): + """ + Setter method for in_fragment_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_fragment_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_fragment_frames() directly. + + YANG Description: The total number of frames received that were less than +64 octets in length (excluding framing bits but including +FCS octets) and had either a bad Frame Check Sequence +(FCS) with an integral number of octets (FCS Error) or a +bad FCS with a non-integral number of octets (Alignment +Error). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_fragment_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_fragment_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_fragment_frames(self): + self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_8021q_frames(self): + """ + Getter method for in_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64) + + YANG Description: Number of 802.1q tagged frames received on the interface + """ + return self.__in_8021q_frames + + def _set_in_8021q_frames(self, v, load=False): + """ + Setter method for in_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_8021q_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_8021q_frames() directly. + + YANG Description: Number of 802.1q tagged frames received on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_8021q_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_8021q_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_8021q_frames(self): + self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_crc_errors(self): + """ + Getter method for in_crc_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64) + + YANG Description: The total number of frames received that +had a length (excluding framing bits, but +including FCS octets) of between 64 and 1518 +octets, inclusive, but had either a bad +Frame Check Sequence (FCS) with an integral +number of octets (FCS Error) or a bad FCS with +a non-integral number of octets (Alignment Error) + """ + return self.__in_crc_errors + + def _set_in_crc_errors(self, v, load=False): + """ + Setter method for in_crc_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_crc_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_crc_errors() directly. + + YANG Description: The total number of frames received that +had a length (excluding framing bits, but +including FCS octets) of between 64 and 1518 +octets, inclusive, but had either a bad +Frame Check Sequence (FCS) with an integral +number of octets (FCS Error) or a bad FCS with +a non-integral number of octets (Alignment Error) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_crc_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_crc_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_crc_errors(self): + self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_block_errors(self): + """ + Getter method for in_block_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64) + + YANG Description: The number of received errored blocks. Error detection codes +are capable of detecting whether one or more errors have +occurred in a given sequence of bits – the block. It is +normally not possible to determine the exact number of errored +bits within the block + """ + return self.__in_block_errors + + def _set_in_block_errors(self, v, load=False): + """ + Setter method for in_block_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_block_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_block_errors() directly. + + YANG Description: The number of received errored blocks. Error detection codes +are capable of detecting whether one or more errors have +occurred in a given sequence of bits – the block. It is +normally not possible to determine the exact number of errored +bits within the block + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_block_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_block_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_block_errors(self): + self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_carrier_errors(self): + """ + Getter method for in_carrier_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64) + + YANG Description: The number of received errored frames due to a carrier issue. +The value refers to MIB counter for +dot3StatsCarrierSenseErrors +oid=1.3.6.1.2.1.10.7.2.1.11 + """ + return self.__in_carrier_errors + + def _set_in_carrier_errors(self, v, load=False): + """ + Setter method for in_carrier_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_carrier_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_carrier_errors() directly. + + YANG Description: The number of received errored frames due to a carrier issue. +The value refers to MIB counter for +dot3StatsCarrierSenseErrors +oid=1.3.6.1.2.1.10.7.2.1.11 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_carrier_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_carrier_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_carrier_errors(self): + self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_interrupted_tx(self): + """ + Getter method for in_interrupted_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64) + + YANG Description: The number of received errored frames due to interrupted +transmission issue. The value refers to MIB counter for +dot3StatsDeferredTransmissions +oid=1.3.6.1.2.1.10.7.2.1.7 + """ + return self.__in_interrupted_tx + + def _set_in_interrupted_tx(self, v, load=False): + """ + Setter method for in_interrupted_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_interrupted_tx is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_interrupted_tx() directly. + + YANG Description: The number of received errored frames due to interrupted +transmission issue. The value refers to MIB counter for +dot3StatsDeferredTransmissions +oid=1.3.6.1.2.1.10.7.2.1.7 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_interrupted_tx must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_interrupted_tx = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_interrupted_tx(self): + self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_late_collision(self): + """ + Getter method for in_late_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64) + + YANG Description: The number of received errored frames due to late collision +issue. The value refers to MIB counter for +dot3StatsLateCollisions +oid=1.3.6.1.2.1.10.7.2.1.8 + """ + return self.__in_late_collision + + def _set_in_late_collision(self, v, load=False): + """ + Setter method for in_late_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_late_collision is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_late_collision() directly. + + YANG Description: The number of received errored frames due to late collision +issue. The value refers to MIB counter for +dot3StatsLateCollisions +oid=1.3.6.1.2.1.10.7.2.1.8 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_late_collision must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_late_collision = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_late_collision(self): + self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_mac_errors_rx(self): + """ + Getter method for in_mac_errors_rx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64) + + YANG Description: The number of received errored frames due to MAC errors +received. The value refers to MIB counter for +dot3StatsInternalMacReceiveErrors +oid=1.3.6.1.2.1.10.7.2.1.16 + """ + return self.__in_mac_errors_rx + + def _set_in_mac_errors_rx(self, v, load=False): + """ + Setter method for in_mac_errors_rx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_mac_errors_rx is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_mac_errors_rx() directly. + + YANG Description: The number of received errored frames due to MAC errors +received. The value refers to MIB counter for +dot3StatsInternalMacReceiveErrors +oid=1.3.6.1.2.1.10.7.2.1.16 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_mac_errors_rx must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_mac_errors_rx = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_mac_errors_rx(self): + self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_single_collision(self): + """ + Getter method for in_single_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64) + + YANG Description: The number of received errored frames due to single collision +issue. The value refers to MIB counter for +dot3StatsSingleCollisionFrames +oid=1.3.6.1.2.1.10.7.2.1.4 + """ + return self.__in_single_collision + + def _set_in_single_collision(self, v, load=False): + """ + Setter method for in_single_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_single_collision is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_single_collision() directly. + + YANG Description: The number of received errored frames due to single collision +issue. The value refers to MIB counter for +dot3StatsSingleCollisionFrames +oid=1.3.6.1.2.1.10.7.2.1.4 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_single_collision must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_single_collision = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_single_collision(self): + self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_symbol_error(self): + """ + Getter method for in_symbol_error, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64) + + YANG Description: The number of received errored frames due to symbol error. +The value refers to MIB counter for +in-symbol-error +oid=1.3.6.1.2.1.10.7.2.1.18 + """ + return self.__in_symbol_error + + def _set_in_symbol_error(self, v, load=False): + """ + Setter method for in_symbol_error, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_symbol_error is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_symbol_error() directly. + + YANG Description: The number of received errored frames due to symbol error. +The value refers to MIB counter for +in-symbol-error +oid=1.3.6.1.2.1.10.7.2.1.18 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_symbol_error must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_symbol_error = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_symbol_error(self): + self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_maxsize_exceeded(self): + """ + Getter method for in_maxsize_exceeded, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64) + + YANG Description: The total number frames received that are well-formed but +dropped due to exceeding the maximum frame size on the interface +(e.g., MTU or MRU) + """ + return self.__in_maxsize_exceeded + + def _set_in_maxsize_exceeded(self, v, load=False): + """ + Setter method for in_maxsize_exceeded, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_maxsize_exceeded is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_maxsize_exceeded() directly. + + YANG Description: The total number frames received that are well-formed but +dropped due to exceeding the maximum frame size on the interface +(e.g., MTU or MRU) + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_maxsize_exceeded must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_maxsize_exceeded = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_maxsize_exceeded(self): + self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_mac_control_frames(self): + """ + Getter method for out_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64) + + YANG Description: MAC layer control frames sent on the interface + """ + return self.__out_mac_control_frames + + def _set_out_mac_control_frames(self, v, load=False): + """ + Setter method for out_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_mac_control_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_mac_control_frames() directly. + + YANG Description: MAC layer control frames sent on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_mac_control_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_mac_control_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_mac_control_frames(self): + self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_mac_pause_frames(self): + """ + Getter method for out_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64) + + YANG Description: MAC layer PAUSE frames sent on the interface + """ + return self.__out_mac_pause_frames + + def _set_out_mac_pause_frames(self, v, load=False): + """ + Setter method for out_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_mac_pause_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_mac_pause_frames() directly. + + YANG Description: MAC layer PAUSE frames sent on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_mac_pause_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_mac_pause_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_mac_pause_frames(self): + self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_8021q_frames(self): + """ + Getter method for out_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64) + + YANG Description: Number of 802.1q tagged frames sent on the interface + """ + return self.__out_8021q_frames + + def _set_out_8021q_frames(self, v, load=False): + """ + Setter method for out_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_8021q_frames is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_8021q_frames() directly. + + YANG Description: Number of 802.1q tagged frames sent on the interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_8021q_frames must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_8021q_frames = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_8021q_frames(self): + self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_mac_errors_tx(self): + """ + Getter method for out_mac_errors_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64) + + YANG Description: The number of sent errored frames due to MAC errors +transmitted. The value refers to MIB counter for +dot3StatsInternalMacTransmitErrors +oid=1.3.6.1.2.1.10.7.2.1.10 + """ + return self.__out_mac_errors_tx + + def _set_out_mac_errors_tx(self, v, load=False): + """ + Setter method for out_mac_errors_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_mac_errors_tx is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_mac_errors_tx() directly. + + YANG Description: The number of sent errored frames due to MAC errors +transmitted. The value refers to MIB counter for +dot3StatsInternalMacTransmitErrors +oid=1.3.6.1.2.1.10.7.2.1.10 + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_mac_errors_tx must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_mac_errors_tx = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_mac_errors_tx(self): + self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False) + + in_mac_control_frames = __builtin__.property(_get_in_mac_control_frames) + in_mac_pause_frames = __builtin__.property(_get_in_mac_pause_frames) + in_oversize_frames = __builtin__.property(_get_in_oversize_frames) + in_undersize_frames = __builtin__.property(_get_in_undersize_frames) + in_jabber_frames = __builtin__.property(_get_in_jabber_frames) + in_fragment_frames = __builtin__.property(_get_in_fragment_frames) + in_8021q_frames = __builtin__.property(_get_in_8021q_frames) + in_crc_errors = __builtin__.property(_get_in_crc_errors) + in_block_errors = __builtin__.property(_get_in_block_errors) + in_carrier_errors = __builtin__.property(_get_in_carrier_errors) + in_interrupted_tx = __builtin__.property(_get_in_interrupted_tx) + in_late_collision = __builtin__.property(_get_in_late_collision) + in_mac_errors_rx = __builtin__.property(_get_in_mac_errors_rx) + in_single_collision = __builtin__.property(_get_in_single_collision) + in_symbol_error = __builtin__.property(_get_in_symbol_error) + in_maxsize_exceeded = __builtin__.property(_get_in_maxsize_exceeded) + out_mac_control_frames = __builtin__.property(_get_out_mac_control_frames) + out_mac_pause_frames = __builtin__.property(_get_out_mac_pause_frames) + out_8021q_frames = __builtin__.property(_get_out_8021q_frames) + out_mac_errors_tx = __builtin__.property(_get_out_mac_errors_tx) + + + _pyangbind_elements = OrderedDict([('in_mac_control_frames', in_mac_control_frames), ('in_mac_pause_frames', in_mac_pause_frames), ('in_oversize_frames', in_oversize_frames), ('in_undersize_frames', in_undersize_frames), ('in_jabber_frames', in_jabber_frames), ('in_fragment_frames', in_fragment_frames), ('in_8021q_frames', in_8021q_frames), ('in_crc_errors', in_crc_errors), ('in_block_errors', in_block_errors), ('in_carrier_errors', in_carrier_errors), ('in_interrupted_tx', in_interrupted_tx), ('in_late_collision', in_late_collision), ('in_mac_errors_rx', in_mac_errors_rx), ('in_single_collision', in_single_collision), ('in_symbol_error', in_symbol_error), ('in_maxsize_exceeded', in_maxsize_exceeded), ('out_mac_control_frames', out_mac_control_frames), ('out_mac_pause_frames', out_mac_pause_frames), ('out_8021q_frames', out_8021q_frames), ('out_mac_errors_tx', out_mac_errors_tx), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..2ccfda7efab86d3f1384c506d84a25962e66c1c4 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class hold_time(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Top-level container for hold-time settings to enable +dampening advertisements of interface transitions. + """ + __slots__ = ('_path_helper', '_extmethods', '__config','__state',) + + _yang_name = 'hold-time' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'hold-time'] + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /interfaces/interface/hold_time/config (container) + + YANG Description: Configuration data for interface hold-time settings. + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /interfaces/interface/hold_time/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configuration data for interface hold-time settings. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /interfaces/interface/hold_time/state (container) + + YANG Description: Operational state data for interface hold-time. + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /interfaces/interface/hold_time/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for interface hold-time. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c3f1d822b900afa7e780d7dbc31564dd5e4316b2 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configuration data for interface hold-time settings. + """ + __slots__ = ('_path_helper', '_extmethods', '__up','__down',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'hold-time', 'config'] + + def _get_up(self): + """ + Getter method for up, mapped from YANG variable /interfaces/interface/hold_time/config/up (uint32) + + YANG Description: Dampens advertisement when the interface +transitions from down to up. A zero value means dampening +is turned off, i.e., immediate notification. + """ + return self.__up + + def _set_up(self, v, load=False): + """ + Setter method for up, mapped from YANG variable /interfaces/interface/hold_time/config/up (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_up is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_up() directly. + + YANG Description: Dampens advertisement when the interface +transitions from down to up. A zero value means dampening +is turned off, i.e., immediate notification. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """up must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""", + }) + + self.__up = t + if hasattr(self, '_set'): + self._set() + + def _unset_up(self): + self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + + + def _get_down(self): + """ + Getter method for down, mapped from YANG variable /interfaces/interface/hold_time/config/down (uint32) + + YANG Description: Dampens advertisement when the interface transitions from +up to down. A zero value means dampening is turned off, +i.e., immediate notification. + """ + return self.__down + + def _set_down(self, v, load=False): + """ + Setter method for down, mapped from YANG variable /interfaces/interface/hold_time/config/down (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_down is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_down() directly. + + YANG Description: Dampens advertisement when the interface transitions from +up to down. A zero value means dampening is turned off, +i.e., immediate notification. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """down must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""", + }) + + self.__down = t + if hasattr(self, '_set'): + self._set() + + def _unset_down(self): + self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + + up = __builtin__.property(_get_up, _set_up) + down = __builtin__.property(_get_down, _set_down) + + + _pyangbind_elements = OrderedDict([('up', up), ('down', down), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d5c994a6de356feb3618bd10efb399bb7b3ad302 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for interface hold-time. + """ + __slots__ = ('_path_helper', '_extmethods', '__up','__down',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'hold-time', 'state'] + + def _get_up(self): + """ + Getter method for up, mapped from YANG variable /interfaces/interface/hold_time/state/up (uint32) + + YANG Description: Dampens advertisement when the interface +transitions from down to up. A zero value means dampening +is turned off, i.e., immediate notification. + """ + return self.__up + + def _set_up(self, v, load=False): + """ + Setter method for up, mapped from YANG variable /interfaces/interface/hold_time/state/up (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_up is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_up() directly. + + YANG Description: Dampens advertisement when the interface +transitions from down to up. A zero value means dampening +is turned off, i.e., immediate notification. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """up must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""", + }) + + self.__up = t + if hasattr(self, '_set'): + self._set() + + def _unset_up(self): + self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + + def _get_down(self): + """ + Getter method for down, mapped from YANG variable /interfaces/interface/hold_time/state/down (uint32) + + YANG Description: Dampens advertisement when the interface transitions from +up to down. A zero value means dampening is turned off, +i.e., immediate notification. + """ + return self.__down + + def _set_down(self, v, load=False): + """ + Setter method for down, mapped from YANG variable /interfaces/interface/hold_time/state/down (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_down is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_down() directly. + + YANG Description: Dampens advertisement when the interface transitions from +up to down. A zero value means dampening is turned off, +i.e., immediate notification. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """down must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""", + }) + + self.__down = t + if hasattr(self, '_set'): + self._set() + + def _unset_down(self): + self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + up = __builtin__.property(_get_up) + down = __builtin__.property(_get_down) + + + _pyangbind_elements = OrderedDict([('up', up), ('down', down), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d8e2ff185e1300fa19b14959b005ddd00dd08c88 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py @@ -0,0 +1,875 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import counters +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data at the global interface level + """ + __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters','__hardware_port',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False) + self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False) + self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + self.__hardware_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'state'] + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /interfaces/interface/state/name (string) + + YANG Description: The name of the interface. + +A device MAY restrict the allowed values for this leaf, +possibly depending on the type of the interface. +For system-controlled interfaces, this leaf is the +device-specific name of the interface. The 'config false' +list interfaces/interface[name]/state contains the currently +existing interfaces on the device. + +If a client tries to create configuration for a +system-controlled interface that is not present in the +corresponding state list, the server MAY reject +the request if the implementation does not support +pre-provisioning of interfaces or if the name refers to +an interface that can never exist in the system. A +NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + +The IETF model in RFC 7223 provides YANG features for the +following (i.e., pre-provisioning and arbitrary-names), +however they are omitted here: + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + +When a configured user-controlled interface is created by +the system, it is instantiated with the same name in the +/interfaces/interface[name]/state list. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /interfaces/interface/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: The name of the interface. + +A device MAY restrict the allowed values for this leaf, +possibly depending on the type of the interface. +For system-controlled interfaces, this leaf is the +device-specific name of the interface. The 'config false' +list interfaces/interface[name]/state contains the currently +existing interfaces on the device. + +If a client tries to create configuration for a +system-controlled interface that is not present in the +corresponding state list, the server MAY reject +the request if the implementation does not support +pre-provisioning of interfaces or if the name refers to +an interface that can never exist in the system. A +NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + +The IETF model in RFC 7223 provides YANG features for the +following (i.e., pre-provisioning and arbitrary-names), +however they are omitted here: + + If the device supports pre-provisioning of interface + configuration, the 'pre-provisioning' feature is + advertised. + + If the device allows arbitrarily named user-controlled + interfaces, the 'arbitrary-names' feature is advertised. + +When a configured user-controlled interface is created by +the system, it is instantiated with the same name in the +/interfaces/interface[name]/state list. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + + + def _get_type(self): + """ + Getter method for type, mapped from YANG variable /interfaces/interface/state/type (identityref) + + YANG Description: The type of the interface. + +When an interface entry is created, a server MAY +initialize the type leaf with a valid value, e.g., if it +is possible to derive the type from the name of the +interface. + +If a client tries to set the type of an interface to a +value that can never be used by the system, e.g., if the +type is not supported or if the type does not match the +name of the interface, the server MUST reject the request. +A NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + """ + return self.__type + + def _set_type(self, v, load=False): + """ + Setter method for type, mapped from YANG variable /interfaces/interface/state/type (identityref) + If this variable is read-only (config: false) in the + source YANG file, then _set_type is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_type() directly. + + YANG Description: The type of the interface. + +When an interface entry is created, a server MAY +initialize the type leaf with a valid value, e.g., if it +is possible to derive the type from the name of the +interface. + +If a client tries to set the type of an interface to a +value that can never be used by the system, e.g., if the +type is not supported or if the type does not match the +name of the interface, the server MUST reject the request. +A NETCONF server MUST reply with an rpc-error with the +error-tag 'invalid-value' in this case. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """type must be of a type compatible with identityref""", + 'defined-type': "openconfig-interfaces:identityref", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False)""", + }) + + self.__type = t + if hasattr(self, '_set'): + self._set() + + def _unset_type(self): + self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False) + + + def _get_mtu(self): + """ + Getter method for mtu, mapped from YANG variable /interfaces/interface/state/mtu (uint16) + + YANG Description: Set the max transmission unit size in octets +for the physical interface. If this is not set, the mtu is +set to the operational default -- e.g., 1514 bytes on an +Ethernet interface. + """ + return self.__mtu + + def _set_mtu(self, v, load=False): + """ + Setter method for mtu, mapped from YANG variable /interfaces/interface/state/mtu (uint16) + If this variable is read-only (config: false) in the + source YANG file, then _set_mtu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_mtu() directly. + + YANG Description: Set the max transmission unit size in octets +for the physical interface. If this is not set, the mtu is +set to the operational default -- e.g., 1514 bytes on an +Ethernet interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """mtu must be of a type compatible with uint16""", + 'defined-type': "uint16", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False)""", + }) + + self.__mtu = t + if hasattr(self, '_set'): + self._set() + + def _unset_mtu(self): + self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False) + + + def _get_loopback_mode(self): + """ + Getter method for loopback_mode, mapped from YANG variable /interfaces/interface/state/loopback_mode (boolean) + + YANG Description: When set to true, the interface is logically looped back, +such that packets that are forwarded via the interface +are received on the same interface. + """ + return self.__loopback_mode + + def _set_loopback_mode(self, v, load=False): + """ + Setter method for loopback_mode, mapped from YANG variable /interfaces/interface/state/loopback_mode (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_loopback_mode is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_loopback_mode() directly. + + YANG Description: When set to true, the interface is logically looped back, +such that packets that are forwarded via the interface +are received on the same interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """loopback_mode must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__loopback_mode = t + if hasattr(self, '_set'): + self._set() + + def _unset_loopback_mode(self): + self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /interfaces/interface/state/description (string) + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /interfaces/interface/state/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + + + def _get_enabled(self): + """ + Getter method for enabled, mapped from YANG variable /interfaces/interface/state/enabled (boolean) + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + return self.__enabled + + def _set_enabled(self, v, load=False): + """ + Setter method for enabled, mapped from YANG variable /interfaces/interface/state/enabled (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enabled is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enabled() directly. + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enabled must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__enabled = t + if hasattr(self, '_set'): + self._set() + + def _unset_enabled(self): + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_ifindex(self): + """ + Getter method for ifindex, mapped from YANG variable /interfaces/interface/state/ifindex (uint32) + + YANG Description: System assigned number for each interface. Corresponds to +ifIndex object in SNMP Interface MIB + """ + return self.__ifindex + + def _set_ifindex(self, v, load=False): + """ + Setter method for ifindex, mapped from YANG variable /interfaces/interface/state/ifindex (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_ifindex is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ifindex() directly. + + YANG Description: System assigned number for each interface. Corresponds to +ifIndex object in SNMP Interface MIB + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ifindex must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""", + }) + + self.__ifindex = t + if hasattr(self, '_set'): + self._set() + + def _unset_ifindex(self): + self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + + def _get_admin_status(self): + """ + Getter method for admin_status, mapped from YANG variable /interfaces/interface/state/admin_status (enumeration) + + YANG Description: The desired state of the interface. In RFC 7223 this leaf +has the same read semantics as ifAdminStatus. Here, it +reflects the administrative state as set by enabling or +disabling the interface. + """ + return self.__admin_status + + def _set_admin_status(self, v, load=False): + """ + Setter method for admin_status, mapped from YANG variable /interfaces/interface/state/admin_status (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_admin_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_admin_status() directly. + + YANG Description: The desired state of the interface. In RFC 7223 this leaf +has the same read semantics as ifAdminStatus. Here, it +reflects the administrative state as set by enabling or +disabling the interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """admin_status must be of a type compatible with enumeration""", + 'defined-type': "openconfig-interfaces:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""", + }) + + self.__admin_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_admin_status(self): + self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + + + def _get_oper_status(self): + """ + Getter method for oper_status, mapped from YANG variable /interfaces/interface/state/oper_status (enumeration) + + YANG Description: The current operational state of the interface. + +This leaf has the same semantics as ifOperStatus. + """ + return self.__oper_status + + def _set_oper_status(self, v, load=False): + """ + Setter method for oper_status, mapped from YANG variable /interfaces/interface/state/oper_status (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_oper_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_oper_status() directly. + + YANG Description: The current operational state of the interface. + +This leaf has the same semantics as ifOperStatus. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """oper_status must be of a type compatible with enumeration""", + 'defined-type': "openconfig-interfaces:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""", + }) + + self.__oper_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_oper_status(self): + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + + + def _get_last_change(self): + """ + Getter method for last_change, mapped from YANG variable /interfaces/interface/state/last_change (oc-types:timeticks64) + + YANG Description: This timestamp indicates the absolute time of the last +state change of the interface (e.g., up-to-down transition). +This is different than the SNMP ifLastChange object in the +standard interface MIB in that it is not relative to the +system boot time (i.e,. sysUpTime). + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_change + + def _set_last_change(self, v, load=False): + """ + Setter method for last_change, mapped from YANG variable /interfaces/interface/state/last_change (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_change is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_change() directly. + + YANG Description: This timestamp indicates the absolute time of the last +state change of the interface (e.g., up-to-down transition). +This is different than the SNMP ifLastChange object in the +standard interface MIB in that it is not relative to the +system boot time (i.e,. sysUpTime). + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_change must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_change = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_change(self): + self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_logical(self): + """ + Getter method for logical, mapped from YANG variable /interfaces/interface/state/logical (boolean) + + YANG Description: When set to true, the interface is a logical interface +which does not have an associated physical port or +channel on the system. + """ + return self.__logical + + def _set_logical(self, v, load=False): + """ + Setter method for logical, mapped from YANG variable /interfaces/interface/state/logical (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_logical is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_logical() directly. + + YANG Description: When set to true, the interface is a logical interface +which does not have an associated physical port or +channel on the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """logical must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__logical = t + if hasattr(self, '_set'): + self._set() + + def _unset_logical(self): + self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_management(self): + """ + Getter method for management, mapped from YANG variable /interfaces/interface/state/management (boolean) + + YANG Description: When set to true, the interface is a dedicated +management interface that is not connected to dataplane +interfaces. It may be used to connect the system to an +out-of-band management network, for example. + """ + return self.__management + + def _set_management(self, v, load=False): + """ + Setter method for management, mapped from YANG variable /interfaces/interface/state/management (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_management is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_management() directly. + + YANG Description: When set to true, the interface is a dedicated +management interface that is not connected to dataplane +interfaces. It may be used to connect the system to an +out-of-band management network, for example. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """management must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__management = t + if hasattr(self, '_set'): + self._set() + + def _unset_management(self): + self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_cpu(self): + """ + Getter method for cpu, mapped from YANG variable /interfaces/interface/state/cpu (boolean) + + YANG Description: When set to true, the interface is for traffic +that is handled by the system CPU, sometimes also called the +control plane interface. On systems that represent the CPU +interface as an Ethernet interface, for example, this leaf +should be used to distinguish the CPU interface from dataplane +interfaces. + """ + return self.__cpu + + def _set_cpu(self, v, load=False): + """ + Setter method for cpu, mapped from YANG variable /interfaces/interface/state/cpu (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_cpu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_cpu() directly. + + YANG Description: When set to true, the interface is for traffic +that is handled by the system CPU, sometimes also called the +control plane interface. On systems that represent the CPU +interface as an Ethernet interface, for example, this leaf +should be used to distinguish the CPU interface from dataplane +interfaces. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """cpu must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__cpu = t + if hasattr(self, '_set'): + self._set() + + def _unset_cpu(self): + self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_counters(self): + """ + Getter method for counters, mapped from YANG variable /interfaces/interface/state/counters (container) + + YANG Description: A collection of interface-related statistics objects. + """ + return self.__counters + + def _set_counters(self, v, load=False): + """ + Setter method for counters, mapped from YANG variable /interfaces/interface/state/counters (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_counters is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_counters() directly. + + YANG Description: A collection of interface-related statistics objects. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """counters must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)""", + }) + + self.__counters = t + if hasattr(self, '_set'): + self._set() + + def _unset_counters(self): + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + + + def _get_hardware_port(self): + """ + Getter method for hardware_port, mapped from YANG variable /interfaces/interface/state/hardware_port (leafref) + + YANG Description: For non-channelized interfaces, references the hardware port +corresponding to the base interface. + """ + return self.__hardware_port + + def _set_hardware_port(self, v, load=False): + """ + Setter method for hardware_port, mapped from YANG variable /interfaces/interface/state/hardware_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_hardware_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_hardware_port() directly. + + YANG Description: For non-channelized interfaces, references the hardware port +corresponding to the base interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """hardware_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False)""", + }) + + self.__hardware_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_hardware_port(self): + self.__hardware_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False) + + name = __builtin__.property(_get_name) + type = __builtin__.property(_get_type) + mtu = __builtin__.property(_get_mtu) + loopback_mode = __builtin__.property(_get_loopback_mode) + description = __builtin__.property(_get_description) + enabled = __builtin__.property(_get_enabled) + ifindex = __builtin__.property(_get_ifindex) + admin_status = __builtin__.property(_get_admin_status) + oper_status = __builtin__.property(_get_oper_status) + last_change = __builtin__.property(_get_last_change) + logical = __builtin__.property(_get_logical) + management = __builtin__.property(_get_management) + cpu = __builtin__.property(_get_cpu) + counters = __builtin__.property(_get_counters) + hardware_port = __builtin__.property(_get_hardware_port) + + + _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ('hardware_port', hardware_port), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..bdda9eb5484cac77f7bee914eac4c130431c4630 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py @@ -0,0 +1,1029 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class counters(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/state/counters. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: A collection of interface-related statistics objects. + """ + __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',) + + _yang_name = 'counters' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'state', 'counters'] + + def _get_in_octets(self): + """ + Getter method for in_octets, mapped from YANG variable /interfaces/interface/state/counters/in_octets (oc-yang:counter64) + + YANG Description: The total number of octets received on the interface, +including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_octets + + def _set_in_octets(self, v, load=False): + """ + Setter method for in_octets, mapped from YANG variable /interfaces/interface/state/counters/in_octets (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_octets is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_octets() directly. + + YANG Description: The total number of octets received on the interface, +including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_octets must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_octets = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_octets(self): + self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_pkts(self): + """ + Getter method for in_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_pkts (oc-yang:counter64) + + YANG Description: The total number of packets received on the interface, +including all unicast, multicast, broadcast and bad packets +etc. + """ + return self.__in_pkts + + def _set_in_pkts(self, v, load=False): + """ + Setter method for in_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_pkts() directly. + + YANG Description: The total number of packets received on the interface, +including all unicast, multicast, broadcast and bad packets +etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_pkts(self): + self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_unicast_pkts(self): + """ + Getter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were not addressed to a +multicast or broadcast address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_unicast_pkts + + def _set_in_unicast_pkts(self, v, load=False): + """ + Setter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_unicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_unicast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were not addressed to a +multicast or broadcast address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_unicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_unicast_pkts(self): + self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_broadcast_pkts(self): + """ + Getter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a broadcast +address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_broadcast_pkts + + def _set_in_broadcast_pkts(self, v, load=False): + """ + Setter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_broadcast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_broadcast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a broadcast +address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_broadcast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_broadcast_pkts(self): + self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_multicast_pkts(self): + """ + Getter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a multicast +address at this sub-layer. For a MAC-layer protocol, +this includes both Group and Functional addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_multicast_pkts + + def _set_in_multicast_pkts(self, v, load=False): + """ + Setter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_multicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_multicast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a multicast +address at this sub-layer. For a MAC-layer protocol, +this includes both Group and Functional addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_multicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_multicast_pkts(self): + self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_discards(self): + """ + Getter method for in_discards, mapped from YANG variable /interfaces/interface/state/counters/in_discards (oc-yang:counter64) + + YANG Description: The number of inbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being deliverable to a higher-layer +protocol. One possible reason for discarding such a +packet could be to free up buffer space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_discards + + def _set_in_discards(self, v, load=False): + """ + Setter method for in_discards, mapped from YANG variable /interfaces/interface/state/counters/in_discards (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_discards is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_discards() directly. + + YANG Description: The number of inbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being deliverable to a higher-layer +protocol. One possible reason for discarding such a +packet could be to free up buffer space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_discards must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_discards = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_discards(self): + self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_errors(self): + """ + Getter method for in_errors, mapped from YANG variable /interfaces/interface/state/counters/in_errors (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of inbound +packets that contained errors preventing them from being +deliverable to a higher-layer protocol. For character- +oriented or fixed-length interfaces, the number of +inbound transmission units that contained errors +preventing them from being deliverable to a higher-layer +protocol. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_errors + + def _set_in_errors(self, v, load=False): + """ + Setter method for in_errors, mapped from YANG variable /interfaces/interface/state/counters/in_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_errors() directly. + + YANG Description: For packet-oriented interfaces, the number of inbound +packets that contained errors preventing them from being +deliverable to a higher-layer protocol. For character- +oriented or fixed-length interfaces, the number of +inbound transmission units that contained errors +preventing them from being deliverable to a higher-layer +protocol. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_errors(self): + self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_unknown_protos(self): + """ + Getter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of packets +received via the interface that were discarded because +of an unknown or unsupported protocol. For +character-oriented or fixed-length interfaces that +support protocol multiplexing, the number of +transmission units received via the interface that were +discarded because of an unknown or unsupported protocol. +For any interface that does not support protocol +multiplexing, this counter is not present. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_unknown_protos + + def _set_in_unknown_protos(self, v, load=False): + """ + Setter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_unknown_protos is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_unknown_protos() directly. + + YANG Description: For packet-oriented interfaces, the number of packets +received via the interface that were discarded because +of an unknown or unsupported protocol. For +character-oriented or fixed-length interfaces that +support protocol multiplexing, the number of +transmission units received via the interface that were +discarded because of an unknown or unsupported protocol. +For any interface that does not support protocol +multiplexing, this counter is not present. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_unknown_protos = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_unknown_protos(self): + self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_fcs_errors(self): + """ + Getter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64) + + YANG Description: Number of received packets which had errors in the +frame check sequence (FCS), i.e., framing errors. + +Discontinuities in the value of this counter can occur +when the device is re-initialization as indicated by the +value of 'last-clear'. + """ + return self.__in_fcs_errors + + def _set_in_fcs_errors(self, v, load=False): + """ + Setter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_fcs_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_fcs_errors() directly. + + YANG Description: Number of received packets which had errors in the +frame check sequence (FCS), i.e., framing errors. + +Discontinuities in the value of this counter can occur +when the device is re-initialization as indicated by the +value of 'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_fcs_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_fcs_errors(self): + self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_octets(self): + """ + Getter method for out_octets, mapped from YANG variable /interfaces/interface/state/counters/out_octets (oc-yang:counter64) + + YANG Description: The total number of octets transmitted out of the +interface, including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_octets + + def _set_out_octets(self, v, load=False): + """ + Setter method for out_octets, mapped from YANG variable /interfaces/interface/state/counters/out_octets (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_octets is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_octets() directly. + + YANG Description: The total number of octets transmitted out of the +interface, including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_octets must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_octets = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_octets(self): + self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_pkts(self): + """ + Getter method for out_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_pkts (oc-yang:counter64) + + YANG Description: The total number of packets transmitted out of the +interface, including all unicast, multicast, broadcast, +and bad packets etc. + """ + return self.__out_pkts + + def _set_out_pkts(self, v, load=False): + """ + Setter method for out_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_pkts() directly. + + YANG Description: The total number of packets transmitted out of the +interface, including all unicast, multicast, broadcast, +and bad packets etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_pkts(self): + self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_unicast_pkts(self): + """ + Getter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were not addressed +to a multicast or broadcast address at this sub-layer, +including those that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_unicast_pkts + + def _set_out_unicast_pkts(self, v, load=False): + """ + Setter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_unicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_unicast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were not addressed +to a multicast or broadcast address at this sub-layer, +including those that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_unicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_unicast_pkts(self): + self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_broadcast_pkts(self): + """ + Getter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +broadcast address at this sub-layer, including those +that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_broadcast_pkts + + def _set_out_broadcast_pkts(self, v, load=False): + """ + Setter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_broadcast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_broadcast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +broadcast address at this sub-layer, including those +that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_broadcast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_broadcast_pkts(self): + self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_multicast_pkts(self): + """ + Getter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +multicast address at this sub-layer, including those +that were discarded or not sent. For a MAC-layer +protocol, this includes both Group and Functional +addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_multicast_pkts + + def _set_out_multicast_pkts(self, v, load=False): + """ + Setter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_multicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_multicast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +multicast address at this sub-layer, including those +that were discarded or not sent. For a MAC-layer +protocol, this includes both Group and Functional +addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_multicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_multicast_pkts(self): + self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_discards(self): + """ + Getter method for out_discards, mapped from YANG variable /interfaces/interface/state/counters/out_discards (oc-yang:counter64) + + YANG Description: The number of outbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being transmitted. One possible reason +for discarding such a packet could be to free up buffer +space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_discards + + def _set_out_discards(self, v, load=False): + """ + Setter method for out_discards, mapped from YANG variable /interfaces/interface/state/counters/out_discards (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_discards is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_discards() directly. + + YANG Description: The number of outbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being transmitted. One possible reason +for discarding such a packet could be to free up buffer +space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_discards must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_discards = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_discards(self): + self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_errors(self): + """ + Getter method for out_errors, mapped from YANG variable /interfaces/interface/state/counters/out_errors (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of outbound +packets that could not be transmitted because of errors. +For character-oriented or fixed-length interfaces, the +number of outbound transmission units that could not be +transmitted because of errors. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_errors + + def _set_out_errors(self, v, load=False): + """ + Setter method for out_errors, mapped from YANG variable /interfaces/interface/state/counters/out_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_errors() directly. + + YANG Description: For packet-oriented interfaces, the number of outbound +packets that could not be transmitted because of errors. +For character-oriented or fixed-length interfaces, the +number of outbound transmission units that could not be +transmitted because of errors. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_errors(self): + self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_carrier_transitions(self): + """ + Getter method for carrier_transitions, mapped from YANG variable /interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64) + + YANG Description: Number of times the interface state has transitioned +between up and down since the time the device restarted +or the last-clear time, whichever is most recent. + """ + return self.__carrier_transitions + + def _set_carrier_transitions(self, v, load=False): + """ + Setter method for carrier_transitions, mapped from YANG variable /interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_carrier_transitions is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_carrier_transitions() directly. + + YANG Description: Number of times the interface state has transitioned +between up and down since the time the device restarted +or the last-clear time, whichever is most recent. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__carrier_transitions = t + if hasattr(self, '_set'): + self._set() + + def _unset_carrier_transitions(self): + self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_last_clear(self): + """ + Getter method for last_clear, mapped from YANG variable /interfaces/interface/state/counters/last_clear (oc-types:timeticks64) + + YANG Description: Timestamp of the last time the interface counters were +cleared. + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_clear + + def _set_last_clear(self, v, load=False): + """ + Setter method for last_clear, mapped from YANG variable /interfaces/interface/state/counters/last_clear (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_clear is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_clear() directly. + + YANG Description: Timestamp of the last time the interface counters were +cleared. + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_clear = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_clear(self): + self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + in_octets = __builtin__.property(_get_in_octets) + in_pkts = __builtin__.property(_get_in_pkts) + in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts) + in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts) + in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts) + in_discards = __builtin__.property(_get_in_discards) + in_errors = __builtin__.property(_get_in_errors) + in_unknown_protos = __builtin__.property(_get_in_unknown_protos) + in_fcs_errors = __builtin__.property(_get_in_fcs_errors) + out_octets = __builtin__.property(_get_out_octets) + out_pkts = __builtin__.property(_get_out_pkts) + out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts) + out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts) + out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts) + out_discards = __builtin__.property(_get_out_discards) + out_errors = __builtin__.property(_get_out_errors) + carrier_transitions = __builtin__.property(_get_carrier_transitions) + last_clear = __builtin__.property(_get_last_clear) + + + _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0145b376a03bf233ef31b50261f70d58241e9a66 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import subinterface +class subinterfaces(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Enclosing container for the list of subinterfaces associated +with a physical interface + """ + __slots__ = ('_path_helper', '_extmethods', '__subinterface',) + + _yang_name = 'subinterfaces' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__subinterface = YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'subinterfaces'] + + def _get_subinterface(self): + """ + Getter method for subinterface, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface (list) + + YANG Description: The list of subinterfaces (logical interfaces) associated +with a physical interface + """ + return self.__subinterface + + def _set_subinterface(self, v, load=False): + """ + Setter method for subinterface, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_subinterface is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_subinterface() directly. + + YANG Description: The list of subinterfaces (logical interfaces) associated +with a physical interface + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """subinterface must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)""", + }) + + self.__subinterface = t + if hasattr(self, '_set'): + self._set() + + def _unset_subinterface(self): + self.__subinterface = YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True) + + subinterface = __builtin__.property(_get_subinterface, _set_subinterface) + + + _pyangbind_elements = OrderedDict([('subinterface', subinterface), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b74e019a7552177737d6d1ad0425467f9ef5e526 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import config +from . import state +class subinterface(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: The list of subinterfaces (logical interfaces) associated +with a physical interface + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',) + + _yang_name = 'subinterface' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'subinterfaces', 'subinterface'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/index (leafref) + + YANG Description: The index number of the subinterface -- used to address +the logical interface + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/index (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: The index number of the subinterface -- used to address +the logical interface + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True) + + + def _get_config(self): + """ + Getter method for config, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config (container) + + YANG Description: Configurable items at the subinterface level + """ + return self.__config + + def _set_config(self, v, load=False): + """ + Setter method for config, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_config is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_config() directly. + + YANG Description: Configurable items at the subinterface level + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """config must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__config = t + if hasattr(self, '_set'): + self._set() + + def _unset_config(self): + self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + + def _get_state(self): + """ + Getter method for state, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state (container) + + YANG Description: Operational state data for logical interfaces + """ + return self.__state + + def _set_state(self, v, load=False): + """ + Setter method for state, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_state is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_state() directly. + + YANG Description: Operational state data for logical interfaces + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """state must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""", + }) + + self.__state = t + if hasattr(self, '_set'): + self._set() + + def _unset_state(self): + self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + config = __builtin__.property(_get_config, _set_config) + state = __builtin__.property(_get_state, _set_state) + + + _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..fb6262e5facf1d46a17eb9edce771ecd99575c17 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class config(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/config. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Configurable items at the subinterface level + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled',) + + _yang_name = 'config' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'config'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/index (uint32) + + YANG Description: The index of the subinterface, or logical interface number. +On systems with no support for subinterfaces, or not using +subinterfaces, this value should default to 0, i.e., the +default subinterface. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/index (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: The index of the subinterface, or logical interface number. +On systems with no support for subinterfaces, or not using +subinterfaces, this value should default to 0, i.e., the +default subinterface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/description (string) + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True) + + + def _get_enabled(self): + """ + Getter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/enabled (boolean) + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + return self.__enabled + + def _set_enabled(self, v, load=False): + """ + Setter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/enabled (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enabled is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enabled() directly. + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enabled must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""", + }) + + self.__enabled = t + if hasattr(self, '_set'): + self._set() + + def _unset_enabled(self): + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True) + + index = __builtin__.property(_get_index, _set_index) + description = __builtin__.property(_get_description, _set_description) + enabled = __builtin__.property(_get_enabled, _set_enabled) + + + _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a40a3022793b2329361872906fca74829d38f711 --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py @@ -0,0 +1,672 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +from . import counters +class state(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/state. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Operational state data for logical interfaces + """ + __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled','__name','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters',) + + _yang_name = 'state' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'state'] + + def _get_index(self): + """ + Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/index (uint32) + + YANG Description: The index of the subinterface, or logical interface number. +On systems with no support for subinterfaces, or not using +subinterfaces, this value should default to 0, i.e., the +default subinterface. + """ + return self.__index + + def _set_index(self, v, load=False): + """ + Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/index (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_index is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_index() directly. + + YANG Description: The index of the subinterface, or logical interface number. +On systems with no support for subinterfaces, or not using +subinterfaces, this value should default to 0, i.e., the +default subinterface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """index must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""", + }) + + self.__index = t + if hasattr(self, '_set'): + self._set() + + def _unset_index(self): + self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + + def _get_description(self): + """ + Getter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/description (string) + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + return self.__description + + def _set_description(self, v, load=False): + """ + Setter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/description (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_description is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_description() directly. + + YANG Description: A textual description of the interface. + +A server implementation MAY map this leaf to the ifAlias +MIB object. Such an implementation needs to use some +mechanism to handle the differences in size and characters +allowed between this leaf and ifAlias. The definition of +such a mechanism is outside the scope of this document. + +Since ifAlias is defined to be stored in non-volatile +storage, the MIB implementation MUST map ifAlias to the +value of 'description' in the persistently stored +datastore. + +Specifically, if the device supports ':startup', when +ifAlias is read the device MUST return the value of +'description' in the 'startup' datastore, and when it is +written, it MUST be written to the 'running' and 'startup' +datastores. Note that it is up to the implementation to + +decide whether to modify this single leaf in 'startup' or +perform an implicit copy-config from 'running' to +'startup'. + +If the device does not support ':startup', ifAlias MUST +be mapped to the 'description' leaf in the 'running' +datastore. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """description must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""", + }) + + self.__description = t + if hasattr(self, '_set'): + self._set() + + def _unset_description(self): + self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + + + def _get_enabled(self): + """ + Getter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/enabled (boolean) + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + return self.__enabled + + def _set_enabled(self, v, load=False): + """ + Setter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/enabled (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_enabled is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_enabled() directly. + + YANG Description: This leaf contains the configured, desired state of the +interface. + +Systems that implement the IF-MIB use the value of this +leaf in the 'running' datastore to set +IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry +has been initialized, as described in RFC 2863. + +Changes in this leaf in the 'running' datastore are +reflected in ifAdminStatus, but if ifAdminStatus is +changed over SNMP, this leaf is not affected. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """enabled must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__enabled = t + if hasattr(self, '_set'): + self._set() + + def _unset_enabled(self): + self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_name(self): + """ + Getter method for name, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/name (string) + + YANG Description: The system-assigned name for the sub-interface. This MAY +be a combination of the base interface name and the +subinterface index, or some other convention used by the +system. + """ + return self.__name + + def _set_name(self, v, load=False): + """ + Setter method for name, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/name (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_name() directly. + + YANG Description: The system-assigned name for the sub-interface. This MAY +be a combination of the base interface name and the +subinterface index, or some other convention used by the +system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """name must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""", + }) + + self.__name = t + if hasattr(self, '_set'): + self._set() + + def _unset_name(self): + self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False) + + + def _get_ifindex(self): + """ + Getter method for ifindex, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32) + + YANG Description: System assigned number for each interface. Corresponds to +ifIndex object in SNMP Interface MIB + """ + return self.__ifindex + + def _set_ifindex(self, v, load=False): + """ + Setter method for ifindex, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_ifindex is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_ifindex() directly. + + YANG Description: System assigned number for each interface. Corresponds to +ifIndex object in SNMP Interface MIB + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """ifindex must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""", + }) + + self.__ifindex = t + if hasattr(self, '_set'): + self._set() + + def _unset_ifindex(self): + self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False) + + + def _get_admin_status(self): + """ + Getter method for admin_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration) + + YANG Description: The desired state of the interface. In RFC 7223 this leaf +has the same read semantics as ifAdminStatus. Here, it +reflects the administrative state as set by enabling or +disabling the interface. + """ + return self.__admin_status + + def _set_admin_status(self, v, load=False): + """ + Setter method for admin_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_admin_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_admin_status() directly. + + YANG Description: The desired state of the interface. In RFC 7223 this leaf +has the same read semantics as ifAdminStatus. Here, it +reflects the administrative state as set by enabling or +disabling the interface. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """admin_status must be of a type compatible with enumeration""", + 'defined-type': "openconfig-interfaces:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""", + }) + + self.__admin_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_admin_status(self): + self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + + + def _get_oper_status(self): + """ + Getter method for oper_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration) + + YANG Description: The current operational state of the interface. + +This leaf has the same semantics as ifOperStatus. + """ + return self.__oper_status + + def _set_oper_status(self, v, load=False): + """ + Setter method for oper_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration) + If this variable is read-only (config: false) in the + source YANG file, then _set_oper_status is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_oper_status() directly. + + YANG Description: The current operational state of the interface. + +This leaf has the same semantics as ifOperStatus. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """oper_status must be of a type compatible with enumeration""", + 'defined-type': "openconfig-interfaces:enumeration", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""", + }) + + self.__oper_status = t + if hasattr(self, '_set'): + self._set() + + def _unset_oper_status(self): + self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False) + + + def _get_last_change(self): + """ + Getter method for last_change, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64) + + YANG Description: This timestamp indicates the absolute time of the last +state change of the interface (e.g., up-to-down transition). +This is different than the SNMP ifLastChange object in the +standard interface MIB in that it is not relative to the +system boot time (i.e,. sysUpTime). + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_change + + def _set_last_change(self, v, load=False): + """ + Setter method for last_change, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_change is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_change() directly. + + YANG Description: This timestamp indicates the absolute time of the last +state change of the interface (e.g., up-to-down transition). +This is different than the SNMP ifLastChange object in the +standard interface MIB in that it is not relative to the +system boot time (i.e,. sysUpTime). + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_change must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_change = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_change(self): + self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + + def _get_logical(self): + """ + Getter method for logical, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/logical (boolean) + + YANG Description: When set to true, the interface is a logical interface +which does not have an associated physical port or +channel on the system. + """ + return self.__logical + + def _set_logical(self, v, load=False): + """ + Setter method for logical, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/logical (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_logical is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_logical() directly. + + YANG Description: When set to true, the interface is a logical interface +which does not have an associated physical port or +channel on the system. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """logical must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__logical = t + if hasattr(self, '_set'): + self._set() + + def _unset_logical(self): + self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_management(self): + """ + Getter method for management, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/management (boolean) + + YANG Description: When set to true, the interface is a dedicated +management interface that is not connected to dataplane +interfaces. It may be used to connect the system to an +out-of-band management network, for example. + """ + return self.__management + + def _set_management(self, v, load=False): + """ + Setter method for management, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/management (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_management is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_management() directly. + + YANG Description: When set to true, the interface is a dedicated +management interface that is not connected to dataplane +interfaces. It may be used to connect the system to an +out-of-band management network, for example. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """management must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__management = t + if hasattr(self, '_set'): + self._set() + + def _unset_management(self): + self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_cpu(self): + """ + Getter method for cpu, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/cpu (boolean) + + YANG Description: When set to true, the interface is for traffic +that is handled by the system CPU, sometimes also called the +control plane interface. On systems that represent the CPU +interface as an Ethernet interface, for example, this leaf +should be used to distinguish the CPU interface from dataplane +interfaces. + """ + return self.__cpu + + def _set_cpu(self, v, load=False): + """ + Setter method for cpu, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/cpu (boolean) + If this variable is read-only (config: false) in the + source YANG file, then _set_cpu is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_cpu() directly. + + YANG Description: When set to true, the interface is for traffic +that is handled by the system CPU, sometimes also called the +control plane interface. On systems that represent the CPU +interface as an Ethernet interface, for example, this leaf +should be used to distinguish the CPU interface from dataplane +interfaces. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """cpu must be of a type compatible with boolean""", + 'defined-type': "boolean", + 'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""", + }) + + self.__cpu = t + if hasattr(self, '_set'): + self._set() + + def _unset_cpu(self): + self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False) + + + def _get_counters(self): + """ + Getter method for counters, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters (container) + + YANG Description: A collection of interface-related statistics objects. + """ + return self.__counters + + def _set_counters(self, v, load=False): + """ + Setter method for counters, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_counters is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_counters() directly. + + YANG Description: A collection of interface-related statistics objects. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """counters must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)""", + }) + + self.__counters = t + if hasattr(self, '_set'): + self._set() + + def _unset_counters(self): + self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False) + + index = __builtin__.property(_get_index) + description = __builtin__.property(_get_description) + enabled = __builtin__.property(_get_enabled) + name = __builtin__.property(_get_name) + ifindex = __builtin__.property(_get_ifindex) + admin_status = __builtin__.property(_get_admin_status) + oper_status = __builtin__.property(_get_oper_status) + last_change = __builtin__.property(_get_last_change) + logical = __builtin__.property(_get_logical) + management = __builtin__.property(_get_management) + cpu = __builtin__.property(_get_cpu) + counters = __builtin__.property(_get_counters) + + + _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ('name', name), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ]) + + diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..62bf19a4b7d365bec2537362c71efa19dfb043dc --- /dev/null +++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py @@ -0,0 +1,1029 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class counters(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/state/counters. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: A collection of interface-related statistics objects. + """ + __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',) + + _yang_name = 'counters' + _yang_namespace = 'http://openconfig.net/yang/interfaces' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'state', 'counters'] + + def _get_in_octets(self): + """ + Getter method for in_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64) + + YANG Description: The total number of octets received on the interface, +including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_octets + + def _set_in_octets(self, v, load=False): + """ + Setter method for in_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_octets is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_octets() directly. + + YANG Description: The total number of octets received on the interface, +including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_octets must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_octets = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_octets(self): + self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_pkts(self): + """ + Getter method for in_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64) + + YANG Description: The total number of packets received on the interface, +including all unicast, multicast, broadcast and bad packets +etc. + """ + return self.__in_pkts + + def _set_in_pkts(self, v, load=False): + """ + Setter method for in_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_pkts() directly. + + YANG Description: The total number of packets received on the interface, +including all unicast, multicast, broadcast and bad packets +etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_pkts(self): + self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_unicast_pkts(self): + """ + Getter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were not addressed to a +multicast or broadcast address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_unicast_pkts + + def _set_in_unicast_pkts(self, v, load=False): + """ + Setter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_unicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_unicast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were not addressed to a +multicast or broadcast address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_unicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_unicast_pkts(self): + self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_broadcast_pkts(self): + """ + Getter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a broadcast +address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_broadcast_pkts + + def _set_in_broadcast_pkts(self, v, load=False): + """ + Setter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_broadcast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_broadcast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a broadcast +address at this sub-layer. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_broadcast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_broadcast_pkts(self): + self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_multicast_pkts(self): + """ + Getter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64) + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a multicast +address at this sub-layer. For a MAC-layer protocol, +this includes both Group and Functional addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_multicast_pkts + + def _set_in_multicast_pkts(self, v, load=False): + """ + Setter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_multicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_multicast_pkts() directly. + + YANG Description: The number of packets, delivered by this sub-layer to a +higher (sub-)layer, that were addressed to a multicast +address at this sub-layer. For a MAC-layer protocol, +this includes both Group and Functional addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_multicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_multicast_pkts(self): + self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_discards(self): + """ + Getter method for in_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64) + + YANG Description: The number of inbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being deliverable to a higher-layer +protocol. One possible reason for discarding such a +packet could be to free up buffer space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_discards + + def _set_in_discards(self, v, load=False): + """ + Setter method for in_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_discards is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_discards() directly. + + YANG Description: The number of inbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being deliverable to a higher-layer +protocol. One possible reason for discarding such a +packet could be to free up buffer space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_discards must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_discards = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_discards(self): + self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_errors(self): + """ + Getter method for in_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of inbound +packets that contained errors preventing them from being +deliverable to a higher-layer protocol. For character- +oriented or fixed-length interfaces, the number of +inbound transmission units that contained errors +preventing them from being deliverable to a higher-layer +protocol. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_errors + + def _set_in_errors(self, v, load=False): + """ + Setter method for in_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_errors() directly. + + YANG Description: For packet-oriented interfaces, the number of inbound +packets that contained errors preventing them from being +deliverable to a higher-layer protocol. For character- +oriented or fixed-length interfaces, the number of +inbound transmission units that contained errors +preventing them from being deliverable to a higher-layer +protocol. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_errors(self): + self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_unknown_protos(self): + """ + Getter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of packets +received via the interface that were discarded because +of an unknown or unsupported protocol. For +character-oriented or fixed-length interfaces that +support protocol multiplexing, the number of +transmission units received via the interface that were +discarded because of an unknown or unsupported protocol. +For any interface that does not support protocol +multiplexing, this counter is not present. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__in_unknown_protos + + def _set_in_unknown_protos(self, v, load=False): + """ + Setter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_unknown_protos is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_unknown_protos() directly. + + YANG Description: For packet-oriented interfaces, the number of packets +received via the interface that were discarded because +of an unknown or unsupported protocol. For +character-oriented or fixed-length interfaces that +support protocol multiplexing, the number of +transmission units received via the interface that were +discarded because of an unknown or unsupported protocol. +For any interface that does not support protocol +multiplexing, this counter is not present. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_unknown_protos = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_unknown_protos(self): + self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_in_fcs_errors(self): + """ + Getter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64) + + YANG Description: Number of received packets which had errors in the +frame check sequence (FCS), i.e., framing errors. + +Discontinuities in the value of this counter can occur +when the device is re-initialization as indicated by the +value of 'last-clear'. + """ + return self.__in_fcs_errors + + def _set_in_fcs_errors(self, v, load=False): + """ + Setter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_in_fcs_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_in_fcs_errors() directly. + + YANG Description: Number of received packets which had errors in the +frame check sequence (FCS), i.e., framing errors. + +Discontinuities in the value of this counter can occur +when the device is re-initialization as indicated by the +value of 'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__in_fcs_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_in_fcs_errors(self): + self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_octets(self): + """ + Getter method for out_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64) + + YANG Description: The total number of octets transmitted out of the +interface, including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_octets + + def _set_out_octets(self, v, load=False): + """ + Setter method for out_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_octets is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_octets() directly. + + YANG Description: The total number of octets transmitted out of the +interface, including framing characters. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_octets must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_octets = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_octets(self): + self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_pkts(self): + """ + Getter method for out_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64) + + YANG Description: The total number of packets transmitted out of the +interface, including all unicast, multicast, broadcast, +and bad packets etc. + """ + return self.__out_pkts + + def _set_out_pkts(self, v, load=False): + """ + Setter method for out_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_pkts() directly. + + YANG Description: The total number of packets transmitted out of the +interface, including all unicast, multicast, broadcast, +and bad packets etc. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_pkts(self): + self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_unicast_pkts(self): + """ + Getter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were not addressed +to a multicast or broadcast address at this sub-layer, +including those that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_unicast_pkts + + def _set_out_unicast_pkts(self, v, load=False): + """ + Setter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_unicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_unicast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were not addressed +to a multicast or broadcast address at this sub-layer, +including those that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_unicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_unicast_pkts(self): + self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_broadcast_pkts(self): + """ + Getter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +broadcast address at this sub-layer, including those +that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_broadcast_pkts + + def _set_out_broadcast_pkts(self, v, load=False): + """ + Setter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_broadcast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_broadcast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +broadcast address at this sub-layer, including those +that were discarded or not sent. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_broadcast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_broadcast_pkts(self): + self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_multicast_pkts(self): + """ + Getter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64) + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +multicast address at this sub-layer, including those +that were discarded or not sent. For a MAC-layer +protocol, this includes both Group and Functional +addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_multicast_pkts + + def _set_out_multicast_pkts(self, v, load=False): + """ + Setter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_multicast_pkts is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_multicast_pkts() directly. + + YANG Description: The total number of packets that higher-level protocols +requested be transmitted, and that were addressed to a +multicast address at this sub-layer, including those +that were discarded or not sent. For a MAC-layer +protocol, this includes both Group and Functional +addresses. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_multicast_pkts = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_multicast_pkts(self): + self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_discards(self): + """ + Getter method for out_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64) + + YANG Description: The number of outbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being transmitted. One possible reason +for discarding such a packet could be to free up buffer +space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_discards + + def _set_out_discards(self, v, load=False): + """ + Setter method for out_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_discards is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_discards() directly. + + YANG Description: The number of outbound packets that were chosen to be +discarded even though no errors had been detected to +prevent their being transmitted. One possible reason +for discarding such a packet could be to free up buffer +space. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_discards must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_discards = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_discards(self): + self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_out_errors(self): + """ + Getter method for out_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64) + + YANG Description: For packet-oriented interfaces, the number of outbound +packets that could not be transmitted because of errors. +For character-oriented or fixed-length interfaces, the +number of outbound transmission units that could not be +transmitted because of errors. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + return self.__out_errors + + def _set_out_errors(self, v, load=False): + """ + Setter method for out_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_out_errors is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_out_errors() directly. + + YANG Description: For packet-oriented interfaces, the number of outbound +packets that could not be transmitted because of errors. +For character-oriented or fixed-length interfaces, the +number of outbound transmission units that could not be +transmitted because of errors. + +Discontinuities in the value of this counter can occur +at re-initialization of the management system, and at +other times as indicated by the value of +'last-clear'. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """out_errors must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__out_errors = t + if hasattr(self, '_set'): + self._set() + + def _unset_out_errors(self): + self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_carrier_transitions(self): + """ + Getter method for carrier_transitions, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64) + + YANG Description: Number of times the interface state has transitioned +between up and down since the time the device restarted +or the last-clear time, whichever is most recent. + """ + return self.__carrier_transitions + + def _set_carrier_transitions(self, v, load=False): + """ + Setter method for carrier_transitions, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64) + If this variable is read-only (config: false) in the + source YANG file, then _set_carrier_transitions is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_carrier_transitions() directly. + + YANG Description: Number of times the interface state has transitioned +between up and down since the time the device restarted +or the last-clear time, whichever is most recent. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""", + 'defined-type': "oc-yang:counter64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""", + }) + + self.__carrier_transitions = t + if hasattr(self, '_set'): + self._set() + + def _unset_carrier_transitions(self): + self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False) + + + def _get_last_clear(self): + """ + Getter method for last_clear, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64) + + YANG Description: Timestamp of the last time the interface counters were +cleared. + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + return self.__last_clear + + def _set_last_clear(self, v, load=False): + """ + Setter method for last_clear, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64) + If this variable is read-only (config: false) in the + source YANG file, then _set_last_clear is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_last_clear() directly. + + YANG Description: Timestamp of the last time the interface counters were +cleared. + +The value is the timestamp in nanoseconds relative to +the Unix Epoch (Jan 1, 1970 00:00:00 UTC). + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""", + 'defined-type': "oc-types:timeticks64", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""", + }) + + self.__last_clear = t + if hasattr(self, '_set'): + self._set() + + def _unset_last_clear(self): + self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False) + + in_octets = __builtin__.property(_get_in_octets) + in_pkts = __builtin__.property(_get_in_pkts) + in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts) + in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts) + in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts) + in_discards = __builtin__.property(_get_in_discards) + in_errors = __builtin__.property(_get_in_errors) + in_unknown_protos = __builtin__.property(_get_in_unknown_protos) + in_fcs_errors = __builtin__.property(_get_in_fcs_errors) + out_octets = __builtin__.property(_get_out_octets) + out_pkts = __builtin__.property(_get_out_pkts) + out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts) + out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts) + out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts) + out_discards = __builtin__.property(_get_out_discards) + out_errors = __builtin__.property(_get_out_errors) + carrier_transitions = __builtin__.property(_get_carrier_transitions) + last_clear = __builtin__.property(_get_last_clear) + + + _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ]) + + diff --git a/hackfest/netconf-oc/platform.xml b/hackfest/netconf-oc/platform.xml new file mode 100644 index 0000000000000000000000000000000000000000..434dc4c9bad3ecea4da9c8ad776c946eb5045f3a --- /dev/null +++ b/hackfest/netconf-oc/platform.xml @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/hackfest/netconf-oc/server-key b/hackfest/netconf-oc/server-key new file mode 100644 index 0000000000000000000000000000000000000000..b1da1bf244778f6d884a5e571de1cc77d144c363 --- /dev/null +++ b/hackfest/netconf-oc/server-key @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4gIBAAKCAYEAueh9Dsz3havrm3NltIudzPiDAWE1wxkl1iD7x2iAJNRmJaeL +WfMLgAVtC7DujsOpVjLbsPdvrKCvZf3PeJE9jzPYJNhAXhMErAaWm3bRfxK0L6et +/kHnFxTGkNHASMrAySRrJloP6zys8n2e8IQ3vq37SrmkcqnizhDpiSeBjYXtIQpD +4eutZ26pyQktAi/X413jQN0ociKane2JTbBvqdYP7nGVFraEhAL34H5u461lTltw +pAog1N5QW7b9Yc1zhFJFCcXeq9luD/y6Z5KzkbBYwxADJojdffrTTHbgz4r+uJkw +9m1K8sqBzIeBY95nmWbMR1iNzIQ97LW+ePebGPPfCO2+YLOkgZGtRs/zErO+8vl7 +cRsEh1MhQ/2qqUckZZEPKxCT32Pcogx8RPAlfUDhm0e7yBnKZktlzddT01cpo0yi +tDzCqTljklRL36tYFDwZBHgB1Yao28V/q0nCKokxhnPDQSjLAIVd8+f6pOctIitq +mO9g03JAVYrvAC4zAgMBAAECggGAbSxANG7ddJwvMgykT1AmDPZrSGYjwjyEYajg +8otFpVst2TL4vIvj1vxYuyLeFOyGBt668MN9yyxZlFVmfvEb63qQlaKAuj4E4ljE +HOu7vxnmwo1/ue5NnNpQeT8T4ite50ABxHXjH0t0bLqkma2rZsiY55r5HXTygfyg +iDCw/cEGLf7vOj7CiBkOj8ZZrg0WhKjgCXlWhSAZGGEj3oGcMWpJ1MbSvJHWZAey +NR1KVV3APjGohkyEVz1uh02AouyYxu0Oyu27i3NO3NSa0BLz6ct3U2wJFVt7zNIz +XcOr+YDcC0gz6yEz1O1e7+p1dOTL9+azA04Dq0IiSu6k94Rrmnvr42sMmDLi/JBN +ZP82nCOoPO31pdVoHqqG/s7+mjHGqTSC+l4wImZD5YGHRnGbOBarH75MG/PIDl6S +VSzVCZKPEnLkZ3lKC1R3WO5K16WCgqTGLisu4VjXALhHIMmJDNk3Kkv+EvLdXp5Q +hBbDlJCtgs7w8V88ci17ss9bmqWRAoHBAOl6T+gvTO2zbJ2LGXVJKGYFDR637GKJ +tPRyTPK8IJR6PN/VgQdJ70P2a3XEUIMSwH+6rBg+zNZnu7TkwDyyxImyjwtnhGjf +xAGfkj5inmsToBq5INxKBamito3QUyzZhYGfDO61r+e0agDpGYCll9EuhBeQ+00x +2x/vA0Btr4WzFnh3xdlozAcPvws3dXhybRPdgPbn90M2UW2ImdIV2GDJNN+vASbl +M9jhI1tm3KjCCfDzgKmvs48IpoRAwZJihQKBwQDL13Qxgk4L5uemi0fBR1Jwd0IE +gZ6E2rZWbzT5Fe9iSsN+1LHJqvs31We8FhN+sYujG1ZUUSt5bpFggXOw+LwDVOf2 +Bzer681YqkRKtu2wkEzRX0R1esMowba0s1Naonu1lohKKAcZJ4YHDBKjxYHH4+NR +mnFjjxtcnQ/mMVb+ZPjOaXvzCt7NfShlfztkClrDca3WgOh/Zed7+M+0S1rrOEpt +Wyph/Y76AzH/uzdEIPkToNqRIACXWOR2NOpn11cCgcAUb0gfIkSxaUrQXyRTR5vp +kfecAK0H0tWrr3VcqWqQlEJPtPgeEzKF2EN/gzcowbNneocleBmlil67bmoE5gCd +rKsobF8CbtNQ8Q5zt132MTmKHTnrDe+A8WTY9KrS+hbdSXZwTiafOQMuITjCMbwf +6tpU1bOpBfwPx3OZaAA8y3fkA1elt65jz9UAvlHhwOIbIv/unE7f6xklZRdRc+gE +UJf4G/EV3mmzScE2dsJJYvJLzIQuVdp5YmBwotpOXaECgcAKJI1ejUpO401xhwqp +/l+Gwxhg2wZFPBDImj37ivDfZjL2E6VJEJ3xeEfyHvMXYcQ9+HVCOsu7/hlzwN09 +2BKa49Wq80782f3cxJQjV5jaKUP5QxFH+zTMyV7K/QVPxDf9oCDl97nqsYHExgAD +cCd2B8ve2p17w7or0JDi9l+KxwFuW+dT/514ghrJehw9bRp5ESYCP2XSOQLcs1O6 +d+ltPN7PNDMWryQ3IoORYwJr/GwIYv+dKwd8gGrVyupDAn8CgcBJ7YIeLbV5nQ+g +Y2Ht748J3157Emckyxv5vE6QQqBzAN+WOWRjSqExbLnnTL9UsrMbYn0STxYRleti +eZmCSXu5msE1ZkwoGNRnyEAtoN0NPI92pB+rKZw2ERSjgtV9rPnmE4tvuz/dosxb +AjGCxal0bnwrnltq1xFqSWrjbvOfbf7bK68I6+T76ktqsGUhz3mdjzFp6cUducm/ +Ty6M1Y33OKW1ymOGnfaaTOuXWC6yLFjdB+aQg5wjNOIwuoHe750= +-----END RSA PRIVATE KEY----- diff --git a/hackfest/netconf-oc/server-key.pub b/hackfest/netconf-oc/server-key.pub new file mode 100644 index 0000000000000000000000000000000000000000..56d420638839114e7c8f1261fde55bef641357c4 --- /dev/null +++ b/hackfest/netconf-oc/server-key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC56H0OzPeFq+ubc2W0i53M+IMBYTXDGSXWIPvHaIAk1GYlp4tZ8wuABW0LsO6Ow6lWMtuw92+soK9l/c94kT2PM9gk2EBeEwSsBpabdtF/ErQvp63+QecXFMaQ0cBIysDJJGsmWg/rPKzyfZ7whDe+rftKuaRyqeLOEOmJJ4GNhe0hCkPh661nbqnJCS0CL9fjXeNA3ShyIpqd7YlNsG+p1g/ucZUWtoSEAvfgfm7jrWVOW3CkCiDU3lBbtv1hzXOEUkUJxd6r2W4P/LpnkrORsFjDEAMmiN19+tNMduDPiv64mTD2bUryyoHMh4Fj3meZZsxHWI3MhD3stb5495sY898I7b5gs6SBka1Gz/MSs77y+XtxGwSHUyFD/aqpRyRlkQ8rEJPfY9yiDHxE8CV9QOGbR7vIGcpmS2XN11PTVymjTKK0PMKpOWOSVEvfq1gUPBkEeAHVhqjbxX+rScIqiTGGc8NBKMsAhV3z5/qk5y0iK2qY72DTckBViu8ALjM= chopps@tops diff --git a/hackfest/netconf-oc/server_openconfig.py b/hackfest/netconf-oc/server_openconfig.py new file mode 100644 index 0000000000000000000000000000000000000000..08a68d42f8aab89349793bfd182f2360ef389bd9 --- /dev/null +++ b/hackfest/netconf-oc/server_openconfig.py @@ -0,0 +1,78 @@ +import logging, os, sys, time +from pyangbind.lib.serialise import pybindIETFXMLEncoder, pybindIETFXMLDecoder +from lxml import etree +from netconf import nsmap_add, NSMAP, server, util +from device_definition import get_device_definition + +logging.basicConfig(level=logging.DEBUG) + +#nsmap_add("topology", "urn:topology") +#nsmap_add("connection", "urn:connection") + +class MyServer(server.NetconfMethods): + + def __init__(self, username, password, port): + host_key_value = os.path.join(os.path.abspath(os.path.dirname(__file__)), "server-key") + auth = server.SSHUserPassController(username=username, password=password) + auth.check_auth_none(username) + self.server = server.NetconfSSHServer(server_ctl=auth, server_methods=self, host_key=host_key_value, port=port, debug=True) + + self.data = get_device_definition() + + def nc_append_capabilities(self, capabilities): + logging.debug("--GET capabilities--") + util.subelm(capabilities, "capability").text = "urn:ietf:params:netconf:capability:xpath:1.0" + #util.subelm(capabilities, "capability").text = NSMAP["topology"] + #util.subelm(capabilities, "capability").text = NSMAP["connection"] + + def rpc_get(self, session, rpc, filter_or_none): + #logging.debug("--GET--") + #logging.debug(session) + #logging.debug(etree.tostring(rpc)) + return util.filter_results(rpc, self.data, None) + + def rpc_get_config(self, session, rpc, source_elm, filter_or_none): + #logging.debug("--GET CONFIG--") + #logging.debug(session) + #logging.debug(etree.tostring(rpc)) + return util.filter_results(rpc, self.data, None) + + def rpc_edit_config(self, session, rpc, target, default_operation, new_config): + logging.debug("--EDIT CONFIG--") + logging.debug(session) + logging.debug(etree.tostring(rpc)) + logging.debug(etree.tostring(target)) + logging.debug(etree.tostring(default_operation)) + logging.debug(etree.tostring(new_config)) + + #data_list = new_config.findall(".//xmlns:connection", namespaces={'xmlns': 'urn:connection'}) + #for connect in data_list: + # logging.debug("connect: " ) + # logging.debug(etree.tostring(connect) ) + # logging.debug("CURRENT CONNECTION") + # logging.debug(etree.tostring(self.data[1]) ) + # self.data[1].append(connect) + # break + return util.filter_results(rpc, self.data, None) + + def close(self): + self.server.close() + +def main(*margs): + port = sys.argv[1] + s = MyServer("admin", "admin", int(port)) + + if sys.stdout.isatty(): + logging.debug("^C to quit server") + + try: + while True: + time.sleep(1) + + except Exception: + logging.debug("quitting server") + + s.close() + +if __name__ == "__main__": + main() diff --git a/hackfest/netconf-oc/yang_models.txt b/hackfest/netconf-oc/yang_models.txt new file mode 100644 index 0000000000000000000000000000000000000000..6fbde735fe439f6d42b4d368e1973aac5b8a540c --- /dev/null +++ b/hackfest/netconf-oc/yang_models.txt @@ -0,0 +1,171 @@ +git_openconfig/release/models/devices-manifest/openconfig-terminal-device-property-types.yang +git_openconfig/release/models/devices-manifest/openconfig-terminal-device-properties.yang +git_openconfig/release/models/vlan/openconfig-vlan.yang +git_openconfig/release/models/vlan/openconfig-vlan-types.yang +git_openconfig/release/models/p4rt/openconfig-p4rt.yang +git_openconfig/release/models/stp/openconfig-spanning-tree-types.yang +git_openconfig/release/models/stp/openconfig-spanning-tree.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-shared-attributes.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-table-attributes.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-attributes.yang +git_openconfig/release/models/rib/openconfig-rib-bgp.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-ext.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-tables.yang +git_openconfig/release/models/rib/openconfig-rib-bgp-types.yang +git_openconfig/release/models/segment-routing/openconfig-segment-routing-types.yang +git_openconfig/release/models/segment-routing/openconfig-srte-policy.yang +git_openconfig/release/models/segment-routing/openconfig-segment-routing.yang +git_openconfig/release/models/segment-routing/openconfig-rsvp-sr-ext.yang +git_openconfig/release/models/isis/openconfig-isis-lsp.yang +git_openconfig/release/models/isis/openconfig-isis-policy.yang +git_openconfig/release/models/isis/openconfig-isis-types.yang +git_openconfig/release/models/isis/openconfig-isis-lsdb-types.yang +git_openconfig/release/models/isis/openconfig-isis.yang +git_openconfig/release/models/isis/openconfig-isis-routing.yang +git_openconfig/release/models/pcep/openconfig-pcep.yang +git_openconfig/release/models/lacp/openconfig-lacp.yang +git_openconfig/release/models/keychain/openconfig-keychain.yang +git_openconfig/release/models/keychain/openconfig-keychain-types.yang +git_openconfig/release/models/openconfig-extensions.yang +git_openconfig/release/models/telemetry/openconfig-telemetry.yang +git_openconfig/release/models/telemetry/openconfig-telemetry-types.yang +git_openconfig/release/models/policy/openconfig-policy-types.yang +git_openconfig/release/models/policy/openconfig-routing-policy.yang +git_openconfig/release/models/bfd/openconfig-bfd.yang +git_openconfig/release/models/types/openconfig-types.yang +git_openconfig/release/models/types/openconfig-yang-types.yang +git_openconfig/release/models/types/openconfig-inet-types.yang +git_openconfig/release/models/ospf/openconfig-ospfv2-common.yang +git_openconfig/release/models/ospf/openconfig-ospfv2-area.yang +git_openconfig/release/models/ospf/openconfig-ospfv2-area-interface.yang +git_openconfig/release/models/ospf/openconfig-ospfv2.yang +git_openconfig/release/models/ospf/openconfig-ospf-types.yang +git_openconfig/release/models/ospf/openconfig-ospfv2-global.yang +git_openconfig/release/models/ospf/openconfig-ospf-policy.yang +git_openconfig/release/models/ospf/openconfig-ospfv2-lsdb.yang +git_openconfig/release/models/gribi/openconfig-gribi.yang +git_openconfig/release/models/platform/openconfig-platform-software.yang +git_openconfig/release/models/platform/openconfig-platform-integrated-circuit.yang +git_openconfig/release/models/platform/openconfig-platform-linecard.yang +git_openconfig/release/models/platform/openconfig-platform-controller-card.yang +git_openconfig/release/models/platform/openconfig-platform-port.yang +git_openconfig/release/models/platform/openconfig-platform-psu.yang +git_openconfig/release/models/platform/openconfig-platform-transceiver.yang +git_openconfig/release/models/platform/openconfig-platform-fabric.yang +git_openconfig/release/models/platform/openconfig-platform.yang +git_openconfig/release/models/platform/openconfig-platform-pipeline-counters.yang +git_openconfig/release/models/platform/openconfig-platform-ext.yang +git_openconfig/release/models/platform/openconfig-platform-types.yang +git_openconfig/release/models/platform/openconfig-platform-common.yang +git_openconfig/release/models/platform/openconfig-platform-fan.yang +git_openconfig/release/models/platform/openconfig-platform-cpu.yang +git_openconfig/release/models/policy-forwarding/openconfig-pf-path-groups.yang +git_openconfig/release/models/policy-forwarding/openconfig-policy-forwarding.yang +git_openconfig/release/models/policy-forwarding/openconfig-pf-srte.yang +git_openconfig/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang +git_openconfig/release/models/policy-forwarding/openconfig-pf-interfaces.yang +git_openconfig/release/models/relay-agent/openconfig-relay-agent.yang +git_openconfig/release/models/optical-transport/openconfig-transport-line-protection.yang +git_openconfig/release/models/optical-transport/openconfig-optical-attenuator.yang +git_openconfig/release/models/optical-transport/openconfig-transport-types.yang +git_openconfig/release/models/optical-transport/openconfig-wavelength-router.yang +git_openconfig/release/models/optical-transport/openconfig-terminal-device.yang +git_openconfig/release/models/optical-transport/openconfig-channel-monitor.yang +git_openconfig/release/models/optical-transport/openconfig-optical-amplifier.yang +git_openconfig/release/models/optical-transport/openconfig-transport-line-connectivity.yang +git_openconfig/release/models/optical-transport/openconfig-transport-line-common.yang +git_openconfig/release/models/multicast/openconfig-pim.yang +git_openconfig/release/models/multicast/openconfig-pim-types.yang +git_openconfig/release/models/multicast/openconfig-igmp.yang +git_openconfig/release/models/multicast/openconfig-igmp-types.yang +git_openconfig/release/models/extensions/openconfig-metadata.yang +git_openconfig/release/models/extensions/openconfig-codegen-extensions.yang +git_openconfig/release/models/wifi/openconfig-wifi-mac.yang +git_openconfig/release/models/wifi/openconfig-wifi-phy.yang +git_openconfig/release/models/wifi/openconfig-ap-interfaces.yang +git_openconfig/release/models/wifi/openconfig-ap-manager.yang +git_openconfig/release/models/wifi/openconfig-wifi-types.yang +git_openconfig/release/models/wifi/openconfig-access-points.yang +git_openconfig/release/models/network-instance/openconfig-network-instance-types.yang +git_openconfig/release/models/network-instance/openconfig-network-instance-l3.yang +git_openconfig/release/models/network-instance/openconfig-evpn.yang +git_openconfig/release/models/network-instance/openconfig-network-instance-l2.yang +git_openconfig/release/models/network-instance/openconfig-network-instance-policy.yang +git_openconfig/release/models/network-instance/openconfig-network-instance.yang +git_openconfig/release/models/network-instance/openconfig-evpn-types.yang +git_openconfig/release/models/system/openconfig-aaa-types.yang +git_openconfig/release/models/system/openconfig-system-logging.yang +git_openconfig/release/models/system/openconfig-aaa-tacacs.yang +git_openconfig/release/models/system/openconfig-procmon.yang +git_openconfig/release/models/system/openconfig-aaa.yang +git_openconfig/release/models/system/openconfig-aaa-radius.yang +git_openconfig/release/models/system/openconfig-system.yang +git_openconfig/release/models/system/openconfig-license.yang +git_openconfig/release/models/system/openconfig-system-grpc.yang +git_openconfig/release/models/system/openconfig-alarms.yang +git_openconfig/release/models/system/openconfig-messages.yang +git_openconfig/release/models/system/openconfig-alarm-types.yang +git_openconfig/release/models/system/openconfig-system-terminal.yang +git_openconfig/release/models/acl/openconfig-packet-match-types.yang +git_openconfig/release/models/acl/openconfig-acl.yang +git_openconfig/release/models/acl/openconfig-packet-match.yang +git_openconfig/release/models/local-routing/openconfig-local-routing.yang +git_openconfig/release/models/openflow/openconfig-openflow.yang +git_openconfig/release/models/openflow/openconfig-openflow-types.yang +git_openconfig/release/models/probes/openconfig-probes.yang +git_openconfig/release/models/probes/openconfig-probes-types.yang +git_openconfig/release/models/lldp/openconfig-lldp-types.yang +git_openconfig/release/models/lldp/openconfig-lldp.yang +git_openconfig/release/models/interfaces/openconfig-if-8021x.yang +git_openconfig/release/models/interfaces/openconfig-interfaces.yang +git_openconfig/release/models/interfaces/openconfig-if-ethernet-ext.yang +git_openconfig/release/models/interfaces/openconfig-if-ip-ext.yang +git_openconfig/release/models/interfaces/openconfig-if-tunnel.yang +git_openconfig/release/models/interfaces/openconfig-if-poe.yang +git_openconfig/release/models/interfaces/openconfig-if-aggregate.yang +git_openconfig/release/models/interfaces/openconfig-if-sdn-ext.yang +git_openconfig/release/models/interfaces/openconfig-if-ip.yang +git_openconfig/release/models/interfaces/openconfig-if-ethernet.yang +git_openconfig/release/models/bgp/openconfig-bgp-errors.yang +git_openconfig/release/models/bgp/openconfig-bgp-common-multiprotocol.yang +git_openconfig/release/models/bgp/openconfig-bgp-common.yang +git_openconfig/release/models/bgp/openconfig-bgp-policy.yang +git_openconfig/release/models/bgp/openconfig-bgp-neighbor.yang +git_openconfig/release/models/bgp/openconfig-bgp-types.yang +git_openconfig/release/models/bgp/openconfig-bgp-common-structure.yang +git_openconfig/release/models/bgp/openconfig-bgp-peer-group.yang +git_openconfig/release/models/bgp/openconfig-bgp-global.yang +git_openconfig/release/models/bgp/openconfig-bgp.yang +git_openconfig/release/models/qos/openconfig-qos-types.yang +git_openconfig/release/models/qos/openconfig-qos-interfaces.yang +git_openconfig/release/models/qos/openconfig-qos.yang +git_openconfig/release/models/qos/openconfig-qos-mem-mgmt.yang +git_openconfig/release/models/qos/openconfig-qos-elements.yang +git_openconfig/release/models/aft/openconfig-aft-mpls.yang +git_openconfig/release/models/aft/openconfig-aft-state-synced.yang +git_openconfig/release/models/aft/openconfig-aft-pf.yang +git_openconfig/release/models/aft/openconfig-aft-ipv6.yang +git_openconfig/release/models/aft/openconfig-aft.yang +git_openconfig/release/models/aft/openconfig-aft-network-instance.yang +git_openconfig/release/models/aft/openconfig-aft-ipv4.yang +git_openconfig/release/models/aft/openconfig-aft-common.yang +git_openconfig/release/models/aft/openconfig-aft-types.yang +git_openconfig/release/models/aft/openconfig-aft-ethernet.yang +git_openconfig/release/models/sampling/openconfig-sampling-sflow.yang +git_openconfig/release/models/sampling/openconfig-sampling.yang +git_openconfig/release/models/firewall/openconfig-fw-link-monitoring.yang +git_openconfig/release/models/firewall/openconfig-fw-high-availability.yang +git_openconfig/release/models/catalog/openconfig-module-catalog.yang +git_openconfig/release/models/catalog/openconfig-catalog-types.yang +git_openconfig/release/models/macsec/openconfig-macsec-types.yang +git_openconfig/release/models/macsec/openconfig-macsec.yang +git_openconfig/release/models/ate/openconfig-ate-intf.yang +git_openconfig/release/models/ate/openconfig-ate-flow.yang +git_openconfig/release/models/mpls/openconfig-mpls-static.yang +git_openconfig/release/models/mpls/openconfig-mpls-rsvp.yang +git_openconfig/release/models/mpls/openconfig-mpls-sr.yang +git_openconfig/release/models/mpls/openconfig-mpls-types.yang +git_openconfig/release/models/mpls/openconfig-mpls.yang +git_openconfig/release/models/mpls/openconfig-mpls-te.yang +git_openconfig/release/models/mpls/openconfig-mpls-ldp.yang +git_openconfig/release/models/mpls/openconfig-mpls-igp.yang diff --git a/hackfest/netconf/binding_connection.py b/hackfest/netconf/binding_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..6da8d21d942afce3e3502783def6179bef406cae --- /dev/null +++ b/hackfest/netconf/binding_connection.py @@ -0,0 +1,411 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_connection_connection__connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__connection_id','__source_node','__target_node','__source_port','__target_port','__bandwidth','__layer_protocol_name',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'connection'] + + def _get_connection_id(self): + """ + Getter method for connection_id, mapped from YANG variable /connection/connection_id (string) + """ + return self.__connection_id + + def _set_connection_id(self, v, load=False): + """ + Setter method for connection_id, mapped from YANG variable /connection/connection_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True)""", + }) + + self.__connection_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection_id(self): + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /connection/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /connection/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /connection/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /connection/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /connection/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /connection/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /connection/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /connection/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_bandwidth(self): + """ + Getter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + """ + return self.__bandwidth + + def _set_bandwidth(self, v, load=False): + """ + Setter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_bandwidth is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bandwidth() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bandwidth must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True)""", + }) + + self.__bandwidth = t + if hasattr(self, '_set'): + self._set() + + def _unset_bandwidth(self): + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with topology:layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + + connection_id = __builtin__.property(_get_connection_id, _set_connection_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + bandwidth = __builtin__.property(_get_bandwidth, _set_bandwidth) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('connection_id', connection_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ('bandwidth', bandwidth), ('layer_protocol_name', layer_protocol_name), ]) + + +class connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__connection',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_connection(self): + """ + Getter method for connection, mapped from YANG variable /connection (list) + """ + return self.__connection + + def _set_connection(self, v, load=False): + """ + Setter method for connection, mapped from YANG variable /connection (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True)""", + }) + + self.__connection = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection(self): + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + connection = __builtin__.property(_get_connection, _set_connection) + + + _pyangbind_elements = OrderedDict([('connection', connection), ]) + + diff --git a/hackfest/netconf/binding_topology.py b/hackfest/netconf/binding_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..ffc30a76ad4fc43f584a7307884ecbd88f5f8528 --- /dev/null +++ b/hackfest/netconf/binding_topology.py @@ -0,0 +1,714 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_port_topology__topology_node_port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node/port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__port_id','__layer_protocol_name',) + + _yang_name = 'port' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'node', u'port'] + + def _get_port_id(self): + """ + Getter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + """ + return self.__port_id + + def _set_port_id(self, v, load=False): + """ + Setter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_port_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__port_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_port_id(self): + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + + port_id = __builtin__.property(_get_port_id, _set_port_id) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('port_id', port_id), ('layer_protocol_name', layer_protocol_name), ]) + + +class yc_node_topology__topology_node(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node_id','__port',) + + _yang_name = 'node' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'node'] + + def _get_node_id(self): + """ + Getter method for node_id, mapped from YANG variable /topology/node/node_id (string) + """ + return self.__node_id + + def _set_node_id(self, v, load=False): + """ + Setter method for node_id, mapped from YANG variable /topology/node/node_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_node_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__node_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_node_id(self): + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_port(self): + """ + Getter method for port, mapped from YANG variable /topology/node/port (list) + """ + return self.__port + + def _set_port(self, v, load=False): + """ + Setter method for port, mapped from YANG variable /topology/node/port (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__port = t + if hasattr(self, '_set'): + self._set() + + def _unset_port(self): + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node_id = __builtin__.property(_get_node_id, _set_node_id) + port = __builtin__.property(_get_port, _set_port) + + + _pyangbind_elements = OrderedDict([('node_id', node_id), ('port', port), ]) + + +class yc_link_topology__topology_link(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/link. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__link_id','__source_node','__target_node','__source_port','__target_port',) + + _yang_name = 'link' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'link'] + + def _get_link_id(self): + """ + Getter method for link_id, mapped from YANG variable /topology/link/link_id (string) + """ + return self.__link_id + + def _set_link_id(self, v, load=False): + """ + Setter method for link_id, mapped from YANG variable /topology/link/link_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_link_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__link_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_link_id(self): + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + link_id = __builtin__.property(_get_link_id, _set_link_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + + + _pyangbind_elements = OrderedDict([('link_id', link_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ]) + + +class yc_topology_topology__topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node','__link',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology'] + + def _get_node(self): + """ + Getter method for node, mapped from YANG variable /topology/node (list) + """ + return self.__node + + def _set_node(self, v, load=False): + """ + Setter method for node, mapped from YANG variable /topology/node (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__node = t + if hasattr(self, '_set'): + self._set() + + def _unset_node(self): + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + + def _get_link(self): + """ + Getter method for link, mapped from YANG variable /topology/link (list) + """ + return self.__link + + def _set_link(self, v, load=False): + """ + Setter method for link, mapped from YANG variable /topology/link (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_link is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__link = t + if hasattr(self, '_set'): + self._set() + + def _unset_link(self): + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node = __builtin__.property(_get_node, _set_node) + link = __builtin__.property(_get_link, _set_link) + + + _pyangbind_elements = OrderedDict([('node', node), ('link', link), ]) + + +class topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__topology',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_topology(self): + """ + Getter method for topology, mapped from YANG variable /topology (container) + """ + return self.__topology + + def _set_topology(self, v, load=False): + """ + Setter method for topology, mapped from YANG variable /topology (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_topology is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_topology() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """topology must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True)""", + }) + + self.__topology = t + if hasattr(self, '_set'): + self._set() + + def _unset_topology(self): + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + topology = __builtin__.property(_get_topology, _set_topology) + + + _pyangbind_elements = OrderedDict([('topology', topology), ]) + + diff --git a/hackfest/netconf/client_topology.py b/hackfest/netconf/client_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..5b1dd9a3e444034a5f6251e3be333847030a42d5 --- /dev/null +++ b/hackfest/netconf/client_topology.py @@ -0,0 +1,24 @@ +from lxml import etree +from netconf.client import NetconfSSHSession + +# connexion parameters +host = 'localhost' +port = 8300 +username = "admin" +password = "admin" + +# connexion to server +session = NetconfSSHSession(host, port, username, password) + +# server capabilities +c = session.capabilities +print(c) + +# get config +print("---GET CONFIG---") +config = session.get_config() +xmlstr = etree.tostring(config, encoding='utf8', xml_declaration=True) +print(xmlstr) + +# close connexion +session.close() diff --git a/hackfest/netconf/confd-basic-6.4.linux.x86_64.zip b/hackfest/netconf/confd-basic-6.4.linux.x86_64.zip new file mode 100644 index 0000000000000000000000000000000000000000..eb5b89e7fbed57e1519ae1990426152651686288 Binary files /dev/null and b/hackfest/netconf/confd-basic-6.4.linux.x86_64.zip differ diff --git a/hackfest/netconf/connection/binding_connection.py b/hackfest/netconf/connection/binding_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..6da8d21d942afce3e3502783def6179bef406cae --- /dev/null +++ b/hackfest/netconf/connection/binding_connection.py @@ -0,0 +1,411 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_connection_connection__connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__connection_id','__source_node','__target_node','__source_port','__target_port','__bandwidth','__layer_protocol_name',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'connection'] + + def _get_connection_id(self): + """ + Getter method for connection_id, mapped from YANG variable /connection/connection_id (string) + """ + return self.__connection_id + + def _set_connection_id(self, v, load=False): + """ + Setter method for connection_id, mapped from YANG variable /connection/connection_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True)""", + }) + + self.__connection_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection_id(self): + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /connection/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /connection/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /connection/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /connection/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /connection/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /connection/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /connection/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /connection/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_bandwidth(self): + """ + Getter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + """ + return self.__bandwidth + + def _set_bandwidth(self, v, load=False): + """ + Setter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_bandwidth is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bandwidth() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bandwidth must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True)""", + }) + + self.__bandwidth = t + if hasattr(self, '_set'): + self._set() + + def _unset_bandwidth(self): + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with topology:layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + + connection_id = __builtin__.property(_get_connection_id, _set_connection_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + bandwidth = __builtin__.property(_get_bandwidth, _set_bandwidth) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('connection_id', connection_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ('bandwidth', bandwidth), ('layer_protocol_name', layer_protocol_name), ]) + + +class connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__connection',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_connection(self): + """ + Getter method for connection, mapped from YANG variable /connection (list) + """ + return self.__connection + + def _set_connection(self, v, load=False): + """ + Setter method for connection, mapped from YANG variable /connection (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True)""", + }) + + self.__connection = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection(self): + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + connection = __builtin__.property(_get_connection, _set_connection) + + + _pyangbind_elements = OrderedDict([('connection', connection), ]) + + diff --git a/hackfest/netconf/connection/binding_topology.py b/hackfest/netconf/connection/binding_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..ffc30a76ad4fc43f584a7307884ecbd88f5f8528 --- /dev/null +++ b/hackfest/netconf/connection/binding_topology.py @@ -0,0 +1,714 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_port_topology__topology_node_port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node/port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__port_id','__layer_protocol_name',) + + _yang_name = 'port' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'node', u'port'] + + def _get_port_id(self): + """ + Getter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + """ + return self.__port_id + + def _set_port_id(self, v, load=False): + """ + Setter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_port_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__port_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_port_id(self): + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + + port_id = __builtin__.property(_get_port_id, _set_port_id) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('port_id', port_id), ('layer_protocol_name', layer_protocol_name), ]) + + +class yc_node_topology__topology_node(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node_id','__port',) + + _yang_name = 'node' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'node'] + + def _get_node_id(self): + """ + Getter method for node_id, mapped from YANG variable /topology/node/node_id (string) + """ + return self.__node_id + + def _set_node_id(self, v, load=False): + """ + Setter method for node_id, mapped from YANG variable /topology/node/node_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_node_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__node_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_node_id(self): + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_port(self): + """ + Getter method for port, mapped from YANG variable /topology/node/port (list) + """ + return self.__port + + def _set_port(self, v, load=False): + """ + Setter method for port, mapped from YANG variable /topology/node/port (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__port = t + if hasattr(self, '_set'): + self._set() + + def _unset_port(self): + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node_id = __builtin__.property(_get_node_id, _set_node_id) + port = __builtin__.property(_get_port, _set_port) + + + _pyangbind_elements = OrderedDict([('node_id', node_id), ('port', port), ]) + + +class yc_link_topology__topology_link(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/link. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__link_id','__source_node','__target_node','__source_port','__target_port',) + + _yang_name = 'link' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology', u'link'] + + def _get_link_id(self): + """ + Getter method for link_id, mapped from YANG variable /topology/link/link_id (string) + """ + return self.__link_id + + def _set_link_id(self, v, load=False): + """ + Setter method for link_id, mapped from YANG variable /topology/link/link_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_link_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__link_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_link_id(self): + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + link_id = __builtin__.property(_get_link_id, _set_link_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + + + _pyangbind_elements = OrderedDict([('link_id', link_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ]) + + +class yc_topology_topology__topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node','__link',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'topology'] + + def _get_node(self): + """ + Getter method for node, mapped from YANG variable /topology/node (list) + """ + return self.__node + + def _set_node(self, v, load=False): + """ + Setter method for node, mapped from YANG variable /topology/node (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__node = t + if hasattr(self, '_set'): + self._set() + + def _unset_node(self): + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + + def _get_link(self): + """ + Getter method for link, mapped from YANG variable /topology/link (list) + """ + return self.__link + + def _set_link(self, v, load=False): + """ + Setter method for link, mapped from YANG variable /topology/link (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_link is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__link = t + if hasattr(self, '_set'): + self._set() + + def _unset_link(self): + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node = __builtin__.property(_get_node, _set_node) + link = __builtin__.property(_get_link, _set_link) + + + _pyangbind_elements = OrderedDict([('node', node), ('link', link), ]) + + +class topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__topology',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_topology(self): + """ + Getter method for topology, mapped from YANG variable /topology (container) + """ + return self.__topology + + def _set_topology(self, v, load=False): + """ + Setter method for topology, mapped from YANG variable /topology (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_topology is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_topology() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """topology must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True)""", + }) + + self.__topology = t + if hasattr(self, '_set'): + self._set() + + def _unset_topology(self): + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + topology = __builtin__.property(_get_topology, _set_topology) + + + _pyangbind_elements = OrderedDict([('topology', topology), ]) + + diff --git a/hackfest/netconf/connection/client_connection.py b/hackfest/netconf/connection/client_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..08c0eaae03fdad0f6dc6f56ceef5b8f9af38acf7 --- /dev/null +++ b/hackfest/netconf/connection/client_connection.py @@ -0,0 +1,44 @@ +from lxml import etree +from netconf.client import NetconfSSHSession + +# connexion parameters +host = 'localhost' +port = 8300 +username = "admin" +password = "admin" + +# connexion to server +session = NetconfSSHSession(host, port, username, password) + +# server capabilities +print("---GET C---") +c = session.capabilities +print(c) + +# get config +print("---GET CONFIG---") +config = session.get_config() +xmlstr = etree.tostring(config, encoding='utf8', xml_declaration=True) +print(xmlstr) + +# edit config +new_config = ''' + + + connection1 + node1 + node1portA + node2 + node2portA + 10 + ETH + + +''' +print("---EDIT CONFIG---") +config = session.edit_config(newconf=new_config) +xmlstr = etree.tostring(config, encoding='utf8', xml_declaration=True) +print(xmlstr) + +# close connexion +session.close() diff --git a/hackfest/netconf/connection/server-key b/hackfest/netconf/connection/server-key new file mode 100644 index 0000000000000000000000000000000000000000..7fc5e5f87d49b1b603cc2eb89a062f9c19ab42b4 --- /dev/null +++ b/hackfest/netconf/connection/server-key @@ -0,0 +1,40 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4gIBAAKCAYEAueh9Dsz3havrm3NltIudzPiDAWE1wxkl1iD7x2iAJNRmJaeL +WfMLgAVtC7DujsOpVjLbsPdvrKCvZf3PeJE9jzPYJNhAXhMErAaWm3bRfxK0L6et +/kHnFxTGkNHASMrAySRrJloP6zys8n2e8IQ3vq37SrmkcqnizhDpiSeBjYXtIQpD +4eutZ26pyQktAi/X413jQN0ociKane2JTbBvqdYP7nGVFraEhAL34H5u461lTltw +pAog1N5QW7b9Yc1zhFJFCcXeq9luD/y6Z5KzkbBYwxADJojdffrTTHbgz4r+uJkw +9m1K8sqBzIeBY95nmWbMR1iNzIQ97LW+ePebGPPfCO2+YLOkgZGtRs/zErO+8vl7 +cRsEh1MhQ/2qqUckZZEPKxCT32Pcogx8RPAlfUDhm0e7yBnKZktlzddT01cpo0yi +tDzCqTljklRL36tYFDwZBHgB1Yao28V/q0nCKokxhnPDQSjLAIVd8+f6pOctIitq +mO9g03JAVYrvAC4zAgMBAAECggGAbSxANG7ddJwvMgykT1AmDPZrSGYjwjyEYajg +8otFpVst2TL4vIvj1vxYuyLeFOyGBt668MN9yyxZlFVmfvEb63qQlaKAuj4E4ljE +HOu7vxnmwo1/ue5NnNpQeT8T4ite50ABxHXjH0t0bLqkma2rZsiY55r5HXTygfyg +iDCw/cEGLf7vOj7CiBkOj8ZZrg0WhKjgCXlWhSAZGGEj3oGcMWpJ1MbSvJHWZAey +NR1KVV3APjGohkyEVz1uh02AouyYxu0Oyu27i3NO3NSa0BLz6ct3U2wJFVt7zNIz +XcOr+YDcC0gz6yEz1O1e7+p1dOTL9+azA04Dq0IiSu6k94Rrmnvr42sMmDLi/JBN +ZP82nCOoPO31pdVoHqqG/s7+mjHGqTSC+l4wImZD5YGHRnGbOBarH75MG/PIDl6S +VSzVCZKPEnLkZ3lKC1R3WO5K16WCgqTGLisu4VjXALhHIMmJDNk3Kkv+EvLdXp5Q +hBbDlJCtgs7w8V88ci17ss9bmqWRAoHBAOl6T+gvTO2zbJ2LGXVJKGYFDR637GKJ +tPRyTPK8IJR6PN/VgQdJ70P2a3XEUIMSwH+6rBg+zNZnu7TkwDyyxImyjwtnhGjf +xAGfkj5inmsToBq5INxKBamito3QUyzZhYGfDO61r+e0agDpGYCll9EuhBeQ+00x +2x/vA0Btr4WzFnh3xdlozAcPvws3dXhybRPdgPbn90M2UW2ImdIV2GDJNN+vASbl +M9jhI1tm3KjCCfDzgKmvs48IpoRAwZJihQKBwQDL13Qxgk4L5uemi0fBR1Jwd0IE +gZ6E2rZWbzT5Fe9iSsN+1LHJqvs31We8FhN+sYujG1ZUUSt5bpFggXOw+LwDVOf2 +Bzer681YqkRKtu2wkEzRX0R1esMowba0s1Naonu1lohKKAcZJ4YHDBKjxYHH4+NR +mnFjjxtcnQ/mMVb+ZPjOaXvzCt7NfShlfztkClrDca3WgOh/Zed7+M+0S1rrOEpt +Wyph/Y76AzH/uzdEIPkToNqRIACXWOR2NOpn11cCgcAUb0gfIkSxaUrQXyRTR5vp +kfecAK0H0tWrr3VcqWqQlEJPtPgeEzKF2EN/gzcowbNneocleBmlil67bmoE5gCd +rKsobF8CbtNQ8Q5zt132MTmKHTnrDe+A8WTY9KrS+hbdSXZwTiafOQMuITjCMbwf +6tpU1bOpBfwPx3OZaAA8y3fkA1elt65jz9UAvlHhwOIbIv/unE7f6xklZRdRc+gE +UJf4G/EV3mmzScE2dsJJYvJLzIQuVdp5YmBwotpOXaECgcAKJI1ejUpO401xhwqp +/l+Gwxhg2wZFPBDImj37ivDfZjL2E6VJEJ3xeEfyHvMXYcQ9+HVCOsu7/hlzwN09 +2BKa49Wq80782f3cxJQjV5jaKUP5QxFH+zTMyV7K/QVPxDf9oCDl97nqsYHExgAD +cCd2B8ve2p17w7or0JDi9l+KxwFuW+dT/514ghrJehw9bRp5ESYCP2XSOQLcs1O6 +d+ltPN7PNDMWryQ3IoORYwJr/GwIYv+dKwd8gGrVyupDAn8CgcBJ7YIeLbV5nQ+g +Y2Ht748J3157Emckyxv5vE6QQqBzAN+WOWRjSqExbLnnTL9UsrMbYn0STxYRleti +eZmCSXu5msE1ZkwoGNRnyEAtoN0NPI92pB+rKZw2ERSjgtV9rPnmE4tvuz/dosxb +AjGCxal0bnwrnltq1xFqSWrjbvOfbf7bK68I6+T76ktqsGUhz3mdjzFp6cUducm/ +Ty6M1Y33OKW1ymOGnfaaTOuXWC6yLFjdB+aQg5wjNOIwuoHe750= +-----END RSA PRIVATE KEY----- + diff --git a/hackfest/netconf/connection/server-key.pub b/hackfest/netconf/connection/server-key.pub new file mode 100644 index 0000000000000000000000000000000000000000..faf095c812fe6ea34983f78cb03f23a0c0a41635 --- /dev/null +++ b/hackfest/netconf/connection/server-key.pub @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC56H0OzPeFq+ubc2W0i53M+IMBYTXDGSXWIPvHaIAk1GYlp4tZ8wuABW0LsO6Ow6lWMtuw92+soK9l/c94kT2PM9gk2EBeEwSsBpabdtF/ErQvp63+QecXFMaQ0cBIysDJJGsmWg/rPKzyfZ7whDe+rftKuaRyqeLOEOmJJ4GNhe0hCkPh661nbqnJCS0CL9fjXeNA3ShyIpqd7YlNsG+p1g/ucZUWtoSEAvfgfm7jrWVOW3CkCiDU3lBbtv1hzXOEUkUJxd6r2W4P/LpnkrORsFjDEAMmiN19+tNMduDPiv64mTD2bUryyoHMh4Fj3meZZsxHWI3MhD3stb5495sY898I7b5gs6SBka1Gz/MSs77y+XtxGwSHUyFD/aqpRyRlkQ8rEJPfY9yiDHxE8CV9QOGbR7vIGcpmS2XN11PTVymjTKK0PMKpOWOSVEvfq1gUPBkEeAHVhqjbxX+rScIqiTGGc8NBKMsAhV3z5/qk5y0iK2qY72DTckBViu8ALjM= chopps@tops + diff --git a/hackfest/netconf/connection/server_topology_connection.py b/hackfest/netconf/connection/server_topology_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..928edfb87c2ab52e9d762eee42e3d7e2cdd78529 --- /dev/null +++ b/hackfest/netconf/connection/server_topology_connection.py @@ -0,0 +1,95 @@ +import sys +import time +import logging +import os + +import binding_topology +import binding_connection + +from pyangbind.lib.serialise import pybindIETFXMLEncoder, pybindIETFXMLDecoder + +from netconf import nsmap_add, NSMAP +from netconf import server, util +from lxml import etree + +logging.basicConfig(level=logging.DEBUG) + + +nsmap_add("topology", "urn:topology") +nsmap_add("connection", "urn:connection") + +class MyServer(object): + + def __init__(self, username, password, port): + host_key_value = os.path.join(os.path.abspath(os.path.dirname(__file__)), "server-key") + auth = server.SSHUserPassController(username=username, password=password) + auth.check_auth_none(username) + self.server = server.NetconfSSHServer(server_ctl=auth, server_methods=self, host_key=host_key_value, port=port, debug=True) + self.data = None + self.load_file() + + def load_file(self): + # create configuration + xml_root = open('topology.xml', 'r').read() + print(xml_root) + topo = pybindIETFXMLDecoder.decode(xml_root, binding_topology, "topology") + xml = pybindIETFXMLEncoder.serialise(topo) + tree = etree.XML(xml) + data = util.elm("nc:data") + data.append(tree) + connection = etree.XML( pybindIETFXMLEncoder.serialise( binding_connection.connection() ) ) + data.append(connection) + + self.data = data + + def nc_append_capabilities(self, capabilities): + logging.debug("--GET capabilities--") + util.subelm(capabilities, "capability").text = "urn:ietf:params:netconf:capability:xpath:1.0" + util.subelm(capabilities, "capability").text = NSMAP["topology"] + util.subelm(capabilities, "capability").text = NSMAP["connection"] + + def rpc_get_config(self, session, rpc, source_elm, filter_or_none): + logging.debug("--GET CONFIG--") + logging.debug(session) + logging.debug(etree.tostring(rpc)) + + return util.filter_results(rpc, self.data, None) + + + def rpc_edit_config(self, session, rpc, target, new_config): + logging.debug("--EDIT CONFIG--") + logging.debug(session) + + data_list = new_config.findall(".//xmlns:connection", namespaces={'xmlns': 'urn:connection'}) + for connect in data_list: + logging.debug("connect: " ) + logging.debug(etree.tostring(connect) ) + logging.debug("CURRENT CONNECTION") + logging.debug(etree.tostring(self.data[1]) ) + self.data[1].append(connect) + break + return util.filter_results(rpc, self.data, None) + + def close(self): + self.server.close() + + + + +def main(*margs): + s = MyServer("admin","admin", 8300) + + if sys.stdout.isatty(): + logging.debug("^C to quit server") + + try: + while True: + time.sleep(1) + + except Exception: + logging.debug("quitting server") + + s.close() + +if __name__ == "__main__": + main() diff --git a/hackfest/netconf/connection/topology.xml b/hackfest/netconf/connection/topology.xml new file mode 100644 index 0000000000000000000000000000000000000000..93af480850b540669f133a76b12519f5554b8850 --- /dev/null +++ b/hackfest/netconf/connection/topology.xml @@ -0,0 +1,23 @@ + + + + node1 + + node1portA + + + + node2 + + node2portA + + + + link1 + node1 + node1portA + node2 + node2portA + + + diff --git a/hackfest/netconf/server-key b/hackfest/netconf/server-key new file mode 100644 index 0000000000000000000000000000000000000000..7fc5e5f87d49b1b603cc2eb89a062f9c19ab42b4 --- /dev/null +++ b/hackfest/netconf/server-key @@ -0,0 +1,40 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4gIBAAKCAYEAueh9Dsz3havrm3NltIudzPiDAWE1wxkl1iD7x2iAJNRmJaeL +WfMLgAVtC7DujsOpVjLbsPdvrKCvZf3PeJE9jzPYJNhAXhMErAaWm3bRfxK0L6et +/kHnFxTGkNHASMrAySRrJloP6zys8n2e8IQ3vq37SrmkcqnizhDpiSeBjYXtIQpD +4eutZ26pyQktAi/X413jQN0ociKane2JTbBvqdYP7nGVFraEhAL34H5u461lTltw +pAog1N5QW7b9Yc1zhFJFCcXeq9luD/y6Z5KzkbBYwxADJojdffrTTHbgz4r+uJkw +9m1K8sqBzIeBY95nmWbMR1iNzIQ97LW+ePebGPPfCO2+YLOkgZGtRs/zErO+8vl7 +cRsEh1MhQ/2qqUckZZEPKxCT32Pcogx8RPAlfUDhm0e7yBnKZktlzddT01cpo0yi +tDzCqTljklRL36tYFDwZBHgB1Yao28V/q0nCKokxhnPDQSjLAIVd8+f6pOctIitq +mO9g03JAVYrvAC4zAgMBAAECggGAbSxANG7ddJwvMgykT1AmDPZrSGYjwjyEYajg +8otFpVst2TL4vIvj1vxYuyLeFOyGBt668MN9yyxZlFVmfvEb63qQlaKAuj4E4ljE +HOu7vxnmwo1/ue5NnNpQeT8T4ite50ABxHXjH0t0bLqkma2rZsiY55r5HXTygfyg +iDCw/cEGLf7vOj7CiBkOj8ZZrg0WhKjgCXlWhSAZGGEj3oGcMWpJ1MbSvJHWZAey +NR1KVV3APjGohkyEVz1uh02AouyYxu0Oyu27i3NO3NSa0BLz6ct3U2wJFVt7zNIz +XcOr+YDcC0gz6yEz1O1e7+p1dOTL9+azA04Dq0IiSu6k94Rrmnvr42sMmDLi/JBN +ZP82nCOoPO31pdVoHqqG/s7+mjHGqTSC+l4wImZD5YGHRnGbOBarH75MG/PIDl6S +VSzVCZKPEnLkZ3lKC1R3WO5K16WCgqTGLisu4VjXALhHIMmJDNk3Kkv+EvLdXp5Q +hBbDlJCtgs7w8V88ci17ss9bmqWRAoHBAOl6T+gvTO2zbJ2LGXVJKGYFDR637GKJ +tPRyTPK8IJR6PN/VgQdJ70P2a3XEUIMSwH+6rBg+zNZnu7TkwDyyxImyjwtnhGjf +xAGfkj5inmsToBq5INxKBamito3QUyzZhYGfDO61r+e0agDpGYCll9EuhBeQ+00x +2x/vA0Btr4WzFnh3xdlozAcPvws3dXhybRPdgPbn90M2UW2ImdIV2GDJNN+vASbl +M9jhI1tm3KjCCfDzgKmvs48IpoRAwZJihQKBwQDL13Qxgk4L5uemi0fBR1Jwd0IE +gZ6E2rZWbzT5Fe9iSsN+1LHJqvs31We8FhN+sYujG1ZUUSt5bpFggXOw+LwDVOf2 +Bzer681YqkRKtu2wkEzRX0R1esMowba0s1Naonu1lohKKAcZJ4YHDBKjxYHH4+NR +mnFjjxtcnQ/mMVb+ZPjOaXvzCt7NfShlfztkClrDca3WgOh/Zed7+M+0S1rrOEpt +Wyph/Y76AzH/uzdEIPkToNqRIACXWOR2NOpn11cCgcAUb0gfIkSxaUrQXyRTR5vp +kfecAK0H0tWrr3VcqWqQlEJPtPgeEzKF2EN/gzcowbNneocleBmlil67bmoE5gCd +rKsobF8CbtNQ8Q5zt132MTmKHTnrDe+A8WTY9KrS+hbdSXZwTiafOQMuITjCMbwf +6tpU1bOpBfwPx3OZaAA8y3fkA1elt65jz9UAvlHhwOIbIv/unE7f6xklZRdRc+gE +UJf4G/EV3mmzScE2dsJJYvJLzIQuVdp5YmBwotpOXaECgcAKJI1ejUpO401xhwqp +/l+Gwxhg2wZFPBDImj37ivDfZjL2E6VJEJ3xeEfyHvMXYcQ9+HVCOsu7/hlzwN09 +2BKa49Wq80782f3cxJQjV5jaKUP5QxFH+zTMyV7K/QVPxDf9oCDl97nqsYHExgAD +cCd2B8ve2p17w7or0JDi9l+KxwFuW+dT/514ghrJehw9bRp5ESYCP2XSOQLcs1O6 +d+ltPN7PNDMWryQ3IoORYwJr/GwIYv+dKwd8gGrVyupDAn8CgcBJ7YIeLbV5nQ+g +Y2Ht748J3157Emckyxv5vE6QQqBzAN+WOWRjSqExbLnnTL9UsrMbYn0STxYRleti +eZmCSXu5msE1ZkwoGNRnyEAtoN0NPI92pB+rKZw2ERSjgtV9rPnmE4tvuz/dosxb +AjGCxal0bnwrnltq1xFqSWrjbvOfbf7bK68I6+T76ktqsGUhz3mdjzFp6cUducm/ +Ty6M1Y33OKW1ymOGnfaaTOuXWC6yLFjdB+aQg5wjNOIwuoHe750= +-----END RSA PRIVATE KEY----- + diff --git a/hackfest/netconf/server-key.pub b/hackfest/netconf/server-key.pub new file mode 100644 index 0000000000000000000000000000000000000000..faf095c812fe6ea34983f78cb03f23a0c0a41635 --- /dev/null +++ b/hackfest/netconf/server-key.pub @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC56H0OzPeFq+ubc2W0i53M+IMBYTXDGSXWIPvHaIAk1GYlp4tZ8wuABW0LsO6Ow6lWMtuw92+soK9l/c94kT2PM9gk2EBeEwSsBpabdtF/ErQvp63+QecXFMaQ0cBIysDJJGsmWg/rPKzyfZ7whDe+rftKuaRyqeLOEOmJJ4GNhe0hCkPh661nbqnJCS0CL9fjXeNA3ShyIpqd7YlNsG+p1g/ucZUWtoSEAvfgfm7jrWVOW3CkCiDU3lBbtv1hzXOEUkUJxd6r2W4P/LpnkrORsFjDEAMmiN19+tNMduDPiv64mTD2bUryyoHMh4Fj3meZZsxHWI3MhD3stb5495sY898I7b5gs6SBka1Gz/MSs77y+XtxGwSHUyFD/aqpRyRlkQ8rEJPfY9yiDHxE8CV9QOGbR7vIGcpmS2XN11PTVymjTKK0PMKpOWOSVEvfq1gUPBkEeAHVhqjbxX+rScIqiTGGc8NBKMsAhV3z5/qk5y0iK2qY72DTckBViu8ALjM= chopps@tops + diff --git a/hackfest/netconf/server_topology.py b/hackfest/netconf/server_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..84460c84b6d10ba580e1a93fd7f30a5b9ea87cb6 --- /dev/null +++ b/hackfest/netconf/server_topology.py @@ -0,0 +1,71 @@ +import sys +import time +import logging +import os + +import binding_topology +from pyangbind.lib.serialise import pybindIETFXMLEncoder, pybindIETFXMLDecoder + +from netconf import nsmap_add, NSMAP +from netconf import server, util +from lxml import etree + +logging.basicConfig(level=logging.DEBUG) + + +nsmap_add("topology", "urn:topology") + +class MyServer(object): + + def __init__(self, username, password, port): + host_key_value = os.path.join(os.path.abspath(os.path.dirname(__file__)), "server-key") + auth = server.SSHUserPassController(username=username, password=password) + self.server = server.NetconfSSHServer(server_ctl=auth, server_methods=self, port=port, host_key=host_key_value, debug=False) + self.load_file() + + def load_file(self): + # create configuration + xml_root = open('topology.xml', 'r').read() + print(xml_root) + topo = pybindIETFXMLDecoder.decode(xml_root, binding_topology, "topology") + xml = pybindIETFXMLEncoder.serialise(topo) + tree = etree.XML(xml) + data = util.elm("nc:data") + data.append(tree) + self.node_topology = data + + def nc_append_capabilities(self, capabilities): + util.subelm(capabilities, "capability").text = "urn:ietf:params:netconf:capability:xpath:1.0" + util.subelm(capabilities, "capability").text = NSMAP["topology"] + + def rpc_get_config(self, session, rpc, source_elm, filter_or_none): + logging.debug("--GET CONFIG--") + logging.debug(session) + logging.debug(etree.tostring(rpc)) + + return util.filter_results(rpc, self.node_topology, None) + + + def close(self): + self.server.close() + + + + +def main(*margs): + s = MyServer("admin","admin", 8300) + + if sys.stdout.isatty(): + logging.debug("^C to quit server") + + try: + while True: + time.sleep(1) + + except Exception: + logging.debug("quitting server") + + s.close() + +if __name__ == "__main__": + main() diff --git a/hackfest/netconf/topology.xml b/hackfest/netconf/topology.xml new file mode 100644 index 0000000000000000000000000000000000000000..93af480850b540669f133a76b12519f5554b8850 --- /dev/null +++ b/hackfest/netconf/topology.xml @@ -0,0 +1,23 @@ + + + + node1 + + node1portA + + + + node2 + + node2portA + + + + link1 + node1 + node1portA + node2 + node2portA + + + diff --git a/hackfest/onos_api/commands.txt b/hackfest/onos_api/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..cac0169e63fac4b16bee718ab0720e2589ffb103 --- /dev/null +++ b/hackfest/onos_api/commands.txt @@ -0,0 +1,45 @@ +== APPENDIX: CONFD +$ cd ~/tfs-ctrl/hackfest/netconf +$ unzip confd-basic-6.4.linux.x86_64.zip +$ cd confd-basic-6.4.linux.x86_64/ +$ ./confd-basic-6.4.linux.x86_64.installer.bin /root/confd/ + +Data model compilation +$ cd /root/confd/bin/ +$ ./confdc -c ~/tfs-ctrl/hackfest/yang/topology.yang + +Start ConfD +$ ./confd --foreground -v --addloadpath . + +In another terminal, use ConfD-client to populate model +$ cd /root/confd/bin/ +$ ./confd_cli +> conf +> topology node node1 +> exit +> commit +> exit +> exit + +Use ConfD-client to show db +$ ./confd_cli +> conf +> show full-configuration +> exit +> exit + +== RUN ONOS +$ cd /root/onos-2.1.0/apache-karaf-4.2.3/bin/ +$ ./karaf clean +> app activate org.onosproject.openflow +> app activate org.onosproject.gui + +In another terminal, run mininet: +$ mn --topo linear,3 --mac --controller=remote,ip=127.0.0.1,port=6653 --switch ovs,protocols=OpenFlow13 + +In another terminal, we use ONOS REST API: +$ curl -X GET -u onos:rocks --header 'Accept: application/json' http://localhost:8181/onos/v1/links | python -m json.tool +$ cd ~/tfs-ctrl/hackfest/onos_api/ +$ python3 onos_topology.py + + diff --git a/hackfest/onos_api/onos_flows.py b/hackfest/onos_api/onos_flows.py new file mode 100644 index 0000000000000000000000000000000000000000..b2df4b5a22a7b419b4331792adf9078b0bd363a3 --- /dev/null +++ b/hackfest/onos_api/onos_flows.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import requests +from requests.auth import HTTPBasicAuth +import json + +IP='localhost' +PORT='8181' +USER='onos' +PASSWORD='rocks' + +URL = 'http://' + IP + ':' + PORT + '/onos/v1/flows/' + +def insertFlow( nodeId, priority, inport, outport ): + + flow='{ "priority": '+priority+', "timeout": 0, "isPermanent": true, "deviceId": "'+nodeId+'", "treatment": { "instructions": [ { "type": "OUTPUT", "port": "'+outport+'" } ] }, "selector": { "criteria": [ { "type": "IN_PORT", "port": "'+inport+'" } ] } }' + + + print ("Flow: " + flow) + url = URL + nodeId + '?appId=tuto' + headers = {'content-type': 'application/json'} + print (url) + response = requests.post(url, data=flow, + headers=headers, auth=HTTPBasicAuth(USER, + PASSWORD)) + print (response) + return response.status_code + +def deleteFlows(): + + url = URL + '' + 'application/'+'tuto' + response = requests.delete(url, auth=HTTPBasicAuth(USER, PASSWORD)) + print (response) + return response.status_code + + + +if __name__ == "__main__": + + print ("Setting flow") + + res = insertFlow(nodeId="of:0000000000000001", priority="40001", inport="1", outport="2") + print (res) + + #deleteFlows() + + + + + + + diff --git a/hackfest/onos_api/onos_topology.py b/hackfest/onos_api/onos_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..c008263d2a4af9bde226e564884ff5a3c800b52b --- /dev/null +++ b/hackfest/onos_api/onos_topology.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import requests +from requests.auth import HTTPBasicAuth +import json + +IP='127.0.0.1' +PORT='8181' +USER='onos' +PASSWORD='rocks' + +def retrieveTopology(ip, port, user, password): + http_json = 'http://' + ip + ':' + port + '/onos/v1/links' + response = requests.get(http_json, auth=HTTPBasicAuth(user, password)) + topology = response.json() + return topology + +if __name__ == "__main__": + + print ("Reading network-topology") + topo = retrieveTopology(IP, PORT, USER, PASSWORD) + print ( json.dumps(topo, indent=4, sort_keys=True) ) + + + diff --git a/hackfest/openconfig/generated.go b/hackfest/openconfig/generated.go new file mode 100644 index 0000000000000000000000000000000000000000..f4ab51ad2c76ba9c41601335881afce4da316868 --- /dev/null +++ b/hackfest/openconfig/generated.go @@ -0,0 +1,8540 @@ +/* +Package gostruct is a generated package which contains definitions +of structs which represent a YANG schema. The generated schema can be +compressed by a series of transformations (compression was false +in this case). + +This package was generated by /usr/share/gocode/src/github.com/openconfig/ygot/ygen/commongen.go +using the following YANG input files: + - /root/public/release/models/optical-transport/openconfig-terminal-device.yang + - /root/public/release/models/types/openconfig-types.yang + - /root/public/release/models/openconfig-extensions.yang + - /root/public/release/models/platform/openconfig-platform-types.yang + - /root/public/release/models/system/openconfig-alarm-types.yang + - /root/public/release/models/lldp/openconfig-lldp.yang + - /root/public/release/models/interfaces/openconfig-interfaces.yang +Imported modules were sourced from: +*/ +package gostruct + +import ( + "encoding/json" + "fmt" + "reflect" + + "github.com/openconfig/ygot/ygot" + "github.com/openconfig/goyang/pkg/yang" + "github.com/openconfig/ygot/ytypes" +) + +// Binary is a type that is used for fields that have a YANG type of +// binary. It is used such that binary fields can be distinguished from +// leaf-lists of uint8s (which are mapped to []uint8, equivalent to +// []byte in reflection). +type Binary []byte + +// YANGEmpty is a type that is used for fields that have a YANG type of +// empty. It is used such that empty fields can be distinguished from boolean fields +// in the generated code. +type YANGEmpty bool + +var ( + SchemaTree map[string]*yang.Entry +) + +func init() { + var err error + if SchemaTree, err = UnzipSchema(); err != nil { + panic("schema error: " + err.Error()) + } +} + +// Schema returns the details of the generated schema. +func Schema() (*ytypes.Schema, error) { + uzp, err := UnzipSchema() + if err != nil { + return nil, fmt.Errorf("cannot unzip schema, %v", err) + } + + return &ytypes.Schema{ + Root: &Device{}, + SchemaTree: uzp, + Unmarshal: Unmarshal, + }, nil +} + +// UnzipSchema unzips the zipped schema and returns a map of yang.Entry nodes, +// keyed by the name of the struct that the yang.Entry describes the schema for. +func UnzipSchema() (map[string]*yang.Entry, error) { + var schemaTree map[string]*yang.Entry + var err error + if schemaTree, err = ygot.GzipToSchema(ySchema); err != nil { + return nil, fmt.Errorf("could not unzip the schema; %v", err) + } + return schemaTree, nil +} + +// Unmarshal unmarshals data, which must be RFC7951 JSON format, into +// destStruct, which must be non-nil and the correct GoStruct type. It returns +// an error if the destStruct is not found in the schema or the data cannot be +// unmarshaled. The supplied options (opts) are used to control the behaviour +// of the unmarshal function - for example, determining whether errors are +// thrown for unknown fields in the input JSON. +func Unmarshal(data []byte, destStruct ygot.GoStruct, opts ...ytypes.UnmarshalOpt) error { + tn := reflect.TypeOf(destStruct).Elem().Name() + schema, ok := SchemaTree[tn] + if !ok { + return fmt.Errorf("could not find schema for type %s", tn ) + } + var jsonTree interface{} + if err := json.Unmarshal([]byte(data), &jsonTree); err != nil { + return err + } + return ytypes.Unmarshal(schema, destStruct, jsonTree, opts...) +} + +// Device represents the /device YANG schema element. +type Device struct { + Components *OpenconfigPlatform_Components `path:"components" module:"openconfig-platform"` + Interfaces *OpenconfigInterfaces_Interfaces `path:"interfaces" module:"openconfig-interfaces"` + InterfacesState *IETFInterfaces_InterfacesState `path:"interfaces-state" module:"ietf-interfaces"` + Lldp *OpenconfigLldp_Lldp `path:"lldp" module:"openconfig-lldp"` + TerminalDevice *OpenconfigTerminalDevice_TerminalDevice `path:"terminal-device" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that Device implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*Device) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *Device) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["Device"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *Device) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// IETFInterfaces_InterfacesState represents the /ietf-interfaces/interfaces-state YANG schema element. +type IETFInterfaces_InterfacesState struct { + Interface map[string]*IETFInterfaces_InterfacesState_Interface `path:"interface" module:"ietf-interfaces"` +} + +// IsYANGGoStruct ensures that IETFInterfaces_InterfacesState implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*IETFInterfaces_InterfacesState) IsYANGGoStruct() {} + +// NewInterface creates a new entry in the Interface list of the +// IETFInterfaces_InterfacesState struct. The keys of the list are populated from the input +// arguments. +func (t *IETFInterfaces_InterfacesState) NewInterface(Name string) (*IETFInterfaces_InterfacesState_Interface, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Interface == nil { + t.Interface = make(map[string]*IETFInterfaces_InterfacesState_Interface) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Interface[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Interface", key) + } + + t.Interface[key] = &IETFInterfaces_InterfacesState_Interface{ + Name: &Name, + } + + return t.Interface[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *IETFInterfaces_InterfacesState) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["IETFInterfaces_InterfacesState"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *IETFInterfaces_InterfacesState) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// IETFInterfaces_InterfacesState_Interface represents the /ietf-interfaces/interfaces-state/interface YANG schema element. +type IETFInterfaces_InterfacesState_Interface struct { + AdminStatus E_IETFInterfaces_InterfacesState_Interface_AdminStatus `path:"admin-status" module:"ietf-interfaces"` + HigherLayerIf []string `path:"higher-layer-if" module:"ietf-interfaces"` + IfIndex *int32 `path:"if-index" module:"ietf-interfaces"` + LastChange *string `path:"last-change" module:"ietf-interfaces"` + LowerLayerIf []string `path:"lower-layer-if" module:"ietf-interfaces"` + Name *string `path:"name" module:"ietf-interfaces"` + OperStatus E_IETFInterfaces_InterfacesState_Interface_OperStatus `path:"oper-status" module:"ietf-interfaces"` + PhysAddress *string `path:"phys-address" module:"ietf-interfaces"` + Speed *uint64 `path:"speed" module:"ietf-interfaces"` + Statistics *IETFInterfaces_InterfacesState_Interface_Statistics `path:"statistics" module:"ietf-interfaces"` + Type E_IETFInterfaces_InterfaceType `path:"type" module:"ietf-interfaces"` +} + +// IsYANGGoStruct ensures that IETFInterfaces_InterfacesState_Interface implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*IETFInterfaces_InterfacesState_Interface) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the IETFInterfaces_InterfacesState_Interface struct, which is a YANG list entry. +func (t *IETFInterfaces_InterfacesState_Interface) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *IETFInterfaces_InterfacesState_Interface) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["IETFInterfaces_InterfacesState_Interface"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *IETFInterfaces_InterfacesState_Interface) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// IETFInterfaces_InterfacesState_Interface_Statistics represents the /ietf-interfaces/interfaces-state/interface/statistics YANG schema element. +type IETFInterfaces_InterfacesState_Interface_Statistics struct { + DiscontinuityTime *string `path:"discontinuity-time" module:"ietf-interfaces"` + InBroadcastPkts *uint64 `path:"in-broadcast-pkts" module:"ietf-interfaces"` + InDiscards *uint32 `path:"in-discards" module:"ietf-interfaces"` + InErrors *uint32 `path:"in-errors" module:"ietf-interfaces"` + InMulticastPkts *uint64 `path:"in-multicast-pkts" module:"ietf-interfaces"` + InOctets *uint64 `path:"in-octets" module:"ietf-interfaces"` + InUnicastPkts *uint64 `path:"in-unicast-pkts" module:"ietf-interfaces"` + InUnknownProtos *uint32 `path:"in-unknown-protos" module:"ietf-interfaces"` + OutBroadcastPkts *uint64 `path:"out-broadcast-pkts" module:"ietf-interfaces"` + OutDiscards *uint32 `path:"out-discards" module:"ietf-interfaces"` + OutErrors *uint32 `path:"out-errors" module:"ietf-interfaces"` + OutMulticastPkts *uint64 `path:"out-multicast-pkts" module:"ietf-interfaces"` + OutOctets *uint64 `path:"out-octets" module:"ietf-interfaces"` + OutUnicastPkts *uint64 `path:"out-unicast-pkts" module:"ietf-interfaces"` +} + +// IsYANGGoStruct ensures that IETFInterfaces_InterfacesState_Interface_Statistics implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*IETFInterfaces_InterfacesState_Interface_Statistics) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *IETFInterfaces_InterfacesState_Interface_Statistics) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["IETFInterfaces_InterfacesState_Interface_Statistics"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *IETFInterfaces_InterfacesState_Interface_Statistics) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces represents the /openconfig-interfaces/interfaces YANG schema element. +type OpenconfigInterfaces_Interfaces struct { + Interface map[string]*OpenconfigInterfaces_Interfaces_Interface `path:"interface" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces) IsYANGGoStruct() {} + +// NewInterface creates a new entry in the Interface list of the +// OpenconfigInterfaces_Interfaces struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigInterfaces_Interfaces) NewInterface(Name string) (*OpenconfigInterfaces_Interfaces_Interface, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Interface == nil { + t.Interface = make(map[string]*OpenconfigInterfaces_Interfaces_Interface) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Interface[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Interface", key) + } + + t.Interface[key] = &OpenconfigInterfaces_Interfaces_Interface{ + Name: &Name, + } + + return t.Interface[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface represents the /openconfig-interfaces/interfaces/interface YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface struct { + Config *OpenconfigInterfaces_Interfaces_Interface_Config `path:"config" module:"openconfig-interfaces"` + Ethernet *OpenconfigInterfaces_Interfaces_Interface_Ethernet `path:"ethernet" module:"openconfig-if-ethernet"` + HoldTime *OpenconfigInterfaces_Interfaces_Interface_HoldTime `path:"hold-time" module:"openconfig-interfaces"` + Name *string `path:"name" module:"openconfig-interfaces"` + State *OpenconfigInterfaces_Interfaces_Interface_State `path:"state" module:"openconfig-interfaces"` + Subinterfaces *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces `path:"subinterfaces" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigInterfaces_Interfaces_Interface struct, which is a YANG list entry. +func (t *OpenconfigInterfaces_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Config represents the /openconfig-interfaces/interfaces/interface/config YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Config struct { + Description *string `path:"description" module:"openconfig-interfaces"` + Enabled *bool `path:"enabled" module:"openconfig-interfaces"` + LoopbackMode *bool `path:"loopback-mode" module:"openconfig-interfaces"` + Mtu *uint16 `path:"mtu" module:"openconfig-interfaces"` + Name *string `path:"name" module:"openconfig-interfaces"` + Type E_IETFInterfaces_InterfaceType `path:"type" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Ethernet represents the /openconfig-interfaces/interfaces/interface/ethernet YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Ethernet struct { + Config *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config `path:"config" module:"openconfig-if-ethernet"` + State *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State `path:"state" module:"openconfig-if-ethernet"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config represents the /openconfig-interfaces/interfaces/interface/ethernet/config YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config struct { + AutoNegotiate *bool `path:"auto-negotiate" module:"openconfig-if-ethernet"` + DuplexMode E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode `path:"duplex-mode" module:"openconfig-if-ethernet"` + EnableFlowControl *bool `path:"enable-flow-control" module:"openconfig-if-ethernet"` + MacAddress *string `path:"mac-address" module:"openconfig-if-ethernet"` + PortSpeed E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"port-speed" module:"openconfig-if-ethernet"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State represents the /openconfig-interfaces/interfaces/interface/ethernet/state YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Ethernet_State struct { + AutoNegotiate *bool `path:"auto-negotiate" module:"openconfig-if-ethernet"` + Counters *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters `path:"counters" module:"openconfig-if-ethernet"` + DuplexMode E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode `path:"duplex-mode" module:"openconfig-if-ethernet"` + EnableFlowControl *bool `path:"enable-flow-control" module:"openconfig-if-ethernet"` + HwMacAddress *string `path:"hw-mac-address" module:"openconfig-if-ethernet"` + MacAddress *string `path:"mac-address" module:"openconfig-if-ethernet"` + NegotiatedDuplexMode E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode `path:"negotiated-duplex-mode" module:"openconfig-if-ethernet"` + NegotiatedPortSpeed E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"negotiated-port-speed" module:"openconfig-if-ethernet"` + PortSpeed E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"port-speed" module:"openconfig-if-ethernet"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters represents the /openconfig-interfaces/interfaces/interface/ethernet/state/counters YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters struct { + In_8021QFrames *uint64 `path:"in-8021q-frames" module:"openconfig-if-ethernet"` + InBlockErrors *uint64 `path:"in-block-errors" module:"openconfig-if-ethernet"` + InCrcErrors *uint64 `path:"in-crc-errors" module:"openconfig-if-ethernet"` + InFragmentFrames *uint64 `path:"in-fragment-frames" module:"openconfig-if-ethernet"` + InJabberFrames *uint64 `path:"in-jabber-frames" module:"openconfig-if-ethernet"` + InMacControlFrames *uint64 `path:"in-mac-control-frames" module:"openconfig-if-ethernet"` + InMacPauseFrames *uint64 `path:"in-mac-pause-frames" module:"openconfig-if-ethernet"` + InOversizeFrames *uint64 `path:"in-oversize-frames" module:"openconfig-if-ethernet"` + InUndersizeFrames *uint64 `path:"in-undersize-frames" module:"openconfig-if-ethernet"` + Out_8021QFrames *uint64 `path:"out-8021q-frames" module:"openconfig-if-ethernet"` + OutMacControlFrames *uint64 `path:"out-mac-control-frames" module:"openconfig-if-ethernet"` + OutMacPauseFrames *uint64 `path:"out-mac-pause-frames" module:"openconfig-if-ethernet"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_HoldTime represents the /openconfig-interfaces/interfaces/interface/hold-time YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_HoldTime struct { + Config *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config `path:"config" module:"openconfig-interfaces"` + State *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State `path:"state" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config represents the /openconfig-interfaces/interfaces/interface/hold-time/config YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config struct { + Down *uint32 `path:"down" module:"openconfig-interfaces"` + Up *uint32 `path:"up" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_HoldTime_State represents the /openconfig-interfaces/interfaces/interface/hold-time/state YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_HoldTime_State struct { + Down *uint32 `path:"down" module:"openconfig-interfaces"` + Up *uint32 `path:"up" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_HoldTime_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_HoldTime_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_HoldTime_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_State represents the /openconfig-interfaces/interfaces/interface/state YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_State struct { + AdminStatus E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus `path:"admin-status" module:"openconfig-interfaces"` + Counters *OpenconfigInterfaces_Interfaces_Interface_State_Counters `path:"counters" module:"openconfig-interfaces"` + Description *string `path:"description" module:"openconfig-interfaces"` + Enabled *bool `path:"enabled" module:"openconfig-interfaces"` + HardwarePort *string `path:"hardware-port" module:"openconfig-platform-port"` + Ifindex *uint32 `path:"ifindex" module:"openconfig-interfaces"` + LastChange *uint64 `path:"last-change" module:"openconfig-interfaces"` + Logical *bool `path:"logical" module:"openconfig-interfaces"` + LoopbackMode *bool `path:"loopback-mode" module:"openconfig-interfaces"` + Mtu *uint16 `path:"mtu" module:"openconfig-interfaces"` + Name *string `path:"name" module:"openconfig-interfaces"` + OperStatus E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus `path:"oper-status" module:"openconfig-interfaces"` + PhysicalChannel []uint16 `path:"physical-channel" module:"openconfig-platform-transceiver"` + Transceiver *string `path:"transceiver" module:"openconfig-platform-transceiver"` + Type E_IETFInterfaces_InterfaceType `path:"type" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_State_Counters represents the /openconfig-interfaces/interfaces/interface/state/counters YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_State_Counters struct { + CarrierTransitions *uint64 `path:"carrier-transitions" module:"openconfig-interfaces"` + InBroadcastPkts *uint64 `path:"in-broadcast-pkts" module:"openconfig-interfaces"` + InDiscards *uint64 `path:"in-discards" module:"openconfig-interfaces"` + InErrors *uint64 `path:"in-errors" module:"openconfig-interfaces"` + InFcsErrors *uint64 `path:"in-fcs-errors" module:"openconfig-interfaces"` + InMulticastPkts *uint64 `path:"in-multicast-pkts" module:"openconfig-interfaces"` + InOctets *uint64 `path:"in-octets" module:"openconfig-interfaces"` + InPkts *uint64 `path:"in-pkts" module:"openconfig-interfaces"` + InUnicastPkts *uint64 `path:"in-unicast-pkts" module:"openconfig-interfaces"` + InUnknownProtos *uint64 `path:"in-unknown-protos" module:"openconfig-interfaces"` + LastClear *uint64 `path:"last-clear" module:"openconfig-interfaces"` + OutBroadcastPkts *uint64 `path:"out-broadcast-pkts" module:"openconfig-interfaces"` + OutDiscards *uint64 `path:"out-discards" module:"openconfig-interfaces"` + OutErrors *uint64 `path:"out-errors" module:"openconfig-interfaces"` + OutMulticastPkts *uint64 `path:"out-multicast-pkts" module:"openconfig-interfaces"` + OutOctets *uint64 `path:"out-octets" module:"openconfig-interfaces"` + OutPkts *uint64 `path:"out-pkts" module:"openconfig-interfaces"` + OutUnicastPkts *uint64 `path:"out-unicast-pkts" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces represents the /openconfig-interfaces/interfaces/interface/subinterfaces YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces struct { + Subinterface map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface `path:"subinterface" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) IsYANGGoStruct() {} + +// NewSubinterface creates a new entry in the Subinterface list of the +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) NewSubinterface(Index uint32) (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Subinterface == nil { + t.Subinterface = make(map[uint32]*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) + } + + key := Index + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Subinterface[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Subinterface", key) + } + + t.Subinterface[key] = &OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface{ + Index: &Index, + } + + return t.Subinterface[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface struct { + Config *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config `path:"config" module:"openconfig-interfaces"` + Index *uint32 `path:"index" module:"openconfig-interfaces"` + State *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State `path:"state" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface struct, which is a YANG list entry. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛListKeyMap() (map[string]interface{}, error) { + if t.Index == nil { + return nil, fmt.Errorf("nil value for key Index") + } + + return map[string]interface{}{ + "index": *t.Index, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/config YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config struct { + Description *string `path:"description" module:"openconfig-interfaces"` + Enabled *bool `path:"enabled" module:"openconfig-interfaces"` + Index *uint32 `path:"index" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/state YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State struct { + AdminStatus E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus `path:"admin-status" module:"openconfig-interfaces"` + Counters *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters `path:"counters" module:"openconfig-interfaces"` + Description *string `path:"description" module:"openconfig-interfaces"` + Enabled *bool `path:"enabled" module:"openconfig-interfaces"` + Ifindex *uint32 `path:"ifindex" module:"openconfig-interfaces"` + Index *uint32 `path:"index" module:"openconfig-interfaces"` + LastChange *uint64 `path:"last-change" module:"openconfig-interfaces"` + Logical *bool `path:"logical" module:"openconfig-interfaces"` + Name *string `path:"name" module:"openconfig-interfaces"` + OperStatus E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus `path:"oper-status" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters represents the /openconfig-interfaces/interfaces/interface/subinterfaces/subinterface/state/counters YANG schema element. +type OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters struct { + CarrierTransitions *uint64 `path:"carrier-transitions" module:"openconfig-interfaces"` + InBroadcastPkts *uint64 `path:"in-broadcast-pkts" module:"openconfig-interfaces"` + InDiscards *uint64 `path:"in-discards" module:"openconfig-interfaces"` + InErrors *uint64 `path:"in-errors" module:"openconfig-interfaces"` + InFcsErrors *uint64 `path:"in-fcs-errors" module:"openconfig-interfaces"` + InMulticastPkts *uint64 `path:"in-multicast-pkts" module:"openconfig-interfaces"` + InOctets *uint64 `path:"in-octets" module:"openconfig-interfaces"` + InPkts *uint64 `path:"in-pkts" module:"openconfig-interfaces"` + InUnicastPkts *uint64 `path:"in-unicast-pkts" module:"openconfig-interfaces"` + InUnknownProtos *uint64 `path:"in-unknown-protos" module:"openconfig-interfaces"` + LastClear *uint64 `path:"last-clear" module:"openconfig-interfaces"` + OutBroadcastPkts *uint64 `path:"out-broadcast-pkts" module:"openconfig-interfaces"` + OutDiscards *uint64 `path:"out-discards" module:"openconfig-interfaces"` + OutErrors *uint64 `path:"out-errors" module:"openconfig-interfaces"` + OutMulticastPkts *uint64 `path:"out-multicast-pkts" module:"openconfig-interfaces"` + OutOctets *uint64 `path:"out-octets" module:"openconfig-interfaces"` + OutPkts *uint64 `path:"out-pkts" module:"openconfig-interfaces"` + OutUnicastPkts *uint64 `path:"out-unicast-pkts" module:"openconfig-interfaces"` +} + +// IsYANGGoStruct ensures that OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigInterfaces_Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp represents the /openconfig-lldp/lldp YANG schema element. +type OpenconfigLldp_Lldp struct { + Config *OpenconfigLldp_Lldp_Config `path:"config" module:"openconfig-lldp"` + Interfaces *OpenconfigLldp_Lldp_Interfaces `path:"interfaces" module:"openconfig-lldp"` + State *OpenconfigLldp_Lldp_State `path:"state" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Config represents the /openconfig-lldp/lldp/config YANG schema element. +type OpenconfigLldp_Lldp_Config struct { + ChassisId *string `path:"chassis-id" module:"openconfig-lldp"` + ChassisIdType E_OpenconfigLldp_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"` + Enabled *bool `path:"enabled" module:"openconfig-lldp"` + HelloTimer *uint64 `path:"hello-timer" module:"openconfig-lldp"` + SuppressTlvAdvertisement []E_OpenconfigLldpTypes_LLDP_TLV `path:"suppress-tlv-advertisement" module:"openconfig-lldp"` + SystemDescription *string `path:"system-description" module:"openconfig-lldp"` + SystemName *string `path:"system-name" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces represents the /openconfig-lldp/lldp/interfaces YANG schema element. +type OpenconfigLldp_Lldp_Interfaces struct { + Interface map[string]*OpenconfigLldp_Lldp_Interfaces_Interface `path:"interface" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces) IsYANGGoStruct() {} + +// NewInterface creates a new entry in the Interface list of the +// OpenconfigLldp_Lldp_Interfaces struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigLldp_Lldp_Interfaces) NewInterface(Name string) (*OpenconfigLldp_Lldp_Interfaces_Interface, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Interface == nil { + t.Interface = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Interface[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Interface", key) + } + + t.Interface[key] = &OpenconfigLldp_Lldp_Interfaces_Interface{ + Name: &Name, + } + + return t.Interface[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface represents the /openconfig-lldp/lldp/interfaces/interface YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface struct { + Config *OpenconfigLldp_Lldp_Interfaces_Interface_Config `path:"config" module:"openconfig-lldp"` + Name *string `path:"name" module:"openconfig-lldp"` + Neighbors *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors `path:"neighbors" module:"openconfig-lldp"` + State *OpenconfigLldp_Lldp_Interfaces_Interface_State `path:"state" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface struct, which is a YANG list entry. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Config represents the /openconfig-lldp/lldp/interfaces/interface/config YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Config struct { + Enabled *bool `path:"enabled" module:"openconfig-lldp"` + Name *string `path:"name" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors represents the /openconfig-lldp/lldp/interfaces/interface/neighbors YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors struct { + Neighbor map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor `path:"neighbor" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) IsYANGGoStruct() {} + +// NewNeighbor creates a new entry in the Neighbor list of the +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) NewNeighbor(Id string) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Neighbor == nil { + t.Neighbor = make(map[string]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) + } + + key := Id + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Neighbor[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Neighbor", key) + } + + t.Neighbor[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor{ + Id: &Id, + } + + return t.Neighbor[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor struct { + Capabilities *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities `path:"capabilities" module:"openconfig-lldp"` + Config *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config `path:"config" module:"openconfig-lldp"` + CustomTlvs *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs `path:"custom-tlvs" module:"openconfig-lldp"` + Id *string `path:"id" module:"openconfig-lldp"` + State *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State `path:"state" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor struct, which is a YANG list entry. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) { + if t.Id == nil { + return nil, fmt.Errorf("nil value for key Id") + } + + return map[string]interface{}{ + "id": *t.Id, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities struct { + Capability map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability `path:"capability" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) IsYANGGoStruct() {} + +// NewCapability creates a new entry in the Capability list of the +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) NewCapability(Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Capability == nil { + t.Capability = make(map[E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Capability[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Capability", key) + } + + t.Capability[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability{ + Name: Name, + } + + return t.Capability[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability struct { + Config *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config `path:"config" module:"openconfig-lldp"` + Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY `path:"name" module:"openconfig-lldp"` + State *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State `path:"state" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability struct, which is a YANG list entry. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛListKeyMap() (map[string]interface{}, error) { + + return map[string]interface{}{ + "name": t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/config YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/state YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State struct { + Enabled *bool `path:"enabled" module:"openconfig-lldp"` + Name E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY `path:"name" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Capabilities_Capability_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/config YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs struct { + Tlv map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv `path:"tlv" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) IsYANGGoStruct() {} + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key represents the key for list Tlv of element /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key struct { + Type int32 `path:"type"` + Oui string `path:"oui"` + OuiSubtype string `path:"oui-subtype"` +} + +// NewTlv creates a new entry in the Tlv list of the +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) NewTlv(Type int32, Oui string, OuiSubtype string) (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Tlv == nil { + t.Tlv = make(map[OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) + } + + key := OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Key{ + Type: Type, + Oui: Oui, + OuiSubtype: OuiSubtype, + } + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Tlv[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Tlv", key) + } + + t.Tlv[key] = &OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv{ + Type: &Type, + Oui: &Oui, + OuiSubtype: &OuiSubtype, + } + + return t.Tlv[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv struct { + Config *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config `path:"config" module:"openconfig-lldp"` + Oui *string `path:"oui" module:"openconfig-lldp"` + OuiSubtype *string `path:"oui-subtype" module:"openconfig-lldp"` + State *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State `path:"state" module:"openconfig-lldp"` + Type *int32 `path:"type" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv struct, which is a YANG list entry. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛListKeyMap() (map[string]interface{}, error) { + if t.Oui == nil { + return nil, fmt.Errorf("nil value for key Oui") + } + + if t.OuiSubtype == nil { + return nil, fmt.Errorf("nil value for key OuiSubtype") + } + + if t.Type == nil { + return nil, fmt.Errorf("nil value for key Type") + } + + return map[string]interface{}{ + "oui": *t.Oui, + "oui-subtype": *t.OuiSubtype, + "type": *t.Type, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv/config YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/custom-tlvs/tlv/state YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State struct { + Oui *string `path:"oui" module:"openconfig-lldp"` + OuiSubtype *string `path:"oui-subtype" module:"openconfig-lldp"` + Type *int32 `path:"type" module:"openconfig-lldp"` + Value Binary `path:"value" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State represents the /openconfig-lldp/lldp/interfaces/interface/neighbors/neighbor/state YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State struct { + Age *uint64 `path:"age" module:"openconfig-lldp"` + ChassisId *string `path:"chassis-id" module:"openconfig-lldp"` + ChassisIdType E_OpenconfigLldp_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"` + Id *string `path:"id" module:"openconfig-lldp"` + LastUpdate *int64 `path:"last-update" module:"openconfig-lldp"` + ManagementAddress *string `path:"management-address" module:"openconfig-lldp"` + ManagementAddressType *string `path:"management-address-type" module:"openconfig-lldp"` + PortDescription *string `path:"port-description" module:"openconfig-lldp"` + PortId *string `path:"port-id" module:"openconfig-lldp"` + PortIdType E_OpenconfigLldp_PortIdType `path:"port-id-type" module:"openconfig-lldp"` + SystemDescription *string `path:"system-description" module:"openconfig-lldp"` + SystemName *string `path:"system-name" module:"openconfig-lldp"` + Ttl *uint16 `path:"ttl" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_State represents the /openconfig-lldp/lldp/interfaces/interface/state YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_State struct { + Counters *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters `path:"counters" module:"openconfig-lldp"` + Enabled *bool `path:"enabled" module:"openconfig-lldp"` + Name *string `path:"name" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters represents the /openconfig-lldp/lldp/interfaces/interface/state/counters YANG schema element. +type OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters struct { + FrameDiscard *uint64 `path:"frame-discard" module:"openconfig-lldp"` + FrameErrorIn *uint64 `path:"frame-error-in" module:"openconfig-lldp"` + FrameErrorOut *uint64 `path:"frame-error-out" module:"openconfig-lldp"` + FrameIn *uint64 `path:"frame-in" module:"openconfig-lldp"` + FrameOut *uint64 `path:"frame-out" module:"openconfig-lldp"` + LastClear *string `path:"last-clear" module:"openconfig-lldp"` + TlvDiscard *uint64 `path:"tlv-discard" module:"openconfig-lldp"` + TlvUnknown *uint64 `path:"tlv-unknown" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_Interfaces_Interface_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_State represents the /openconfig-lldp/lldp/state YANG schema element. +type OpenconfigLldp_Lldp_State struct { + ChassisId *string `path:"chassis-id" module:"openconfig-lldp"` + ChassisIdType E_OpenconfigLldp_ChassisIdType `path:"chassis-id-type" module:"openconfig-lldp"` + Counters *OpenconfigLldp_Lldp_State_Counters `path:"counters" module:"openconfig-lldp"` + Enabled *bool `path:"enabled" module:"openconfig-lldp"` + HelloTimer *uint64 `path:"hello-timer" module:"openconfig-lldp"` + SuppressTlvAdvertisement []E_OpenconfigLldpTypes_LLDP_TLV `path:"suppress-tlv-advertisement" module:"openconfig-lldp"` + SystemDescription *string `path:"system-description" module:"openconfig-lldp"` + SystemName *string `path:"system-name" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigLldp_Lldp_State_Counters represents the /openconfig-lldp/lldp/state/counters YANG schema element. +type OpenconfigLldp_Lldp_State_Counters struct { + EntriesAgedOut *uint64 `path:"entries-aged-out" module:"openconfig-lldp"` + FrameDiscard *uint64 `path:"frame-discard" module:"openconfig-lldp"` + FrameErrorIn *uint64 `path:"frame-error-in" module:"openconfig-lldp"` + FrameIn *uint64 `path:"frame-in" module:"openconfig-lldp"` + FrameOut *uint64 `path:"frame-out" module:"openconfig-lldp"` + LastClear *string `path:"last-clear" module:"openconfig-lldp"` + TlvAccepted *uint64 `path:"tlv-accepted" module:"openconfig-lldp"` + TlvDiscard *uint64 `path:"tlv-discard" module:"openconfig-lldp"` + TlvUnknown *uint64 `path:"tlv-unknown" module:"openconfig-lldp"` +} + +// IsYANGGoStruct ensures that OpenconfigLldp_Lldp_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigLldp_Lldp_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigLldp_Lldp_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigLldp_Lldp_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigLldp_Lldp_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components represents the /openconfig-platform/components YANG schema element. +type OpenconfigPlatform_Components struct { + Component map[string]*OpenconfigPlatform_Components_Component `path:"component" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components) IsYANGGoStruct() {} + +// NewComponent creates a new entry in the Component list of the +// OpenconfigPlatform_Components struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigPlatform_Components) NewComponent(Name string) (*OpenconfigPlatform_Components_Component, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Component == nil { + t.Component = make(map[string]*OpenconfigPlatform_Components_Component) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Component[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Component", key) + } + + t.Component[key] = &OpenconfigPlatform_Components_Component{ + Name: &Name, + } + + return t.Component[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component represents the /openconfig-platform/components/component YANG schema element. +type OpenconfigPlatform_Components_Component struct { + Backplane *OpenconfigPlatform_Components_Component_Backplane `path:"backplane" module:"openconfig-platform"` + Chassis *OpenconfigPlatform_Components_Component_Chassis `path:"chassis" module:"openconfig-platform"` + Config *OpenconfigPlatform_Components_Component_Config `path:"config" module:"openconfig-platform"` + Cpu *OpenconfigPlatform_Components_Component_Cpu `path:"cpu" module:"openconfig-platform"` + Fabric *OpenconfigPlatform_Components_Component_Fabric `path:"fabric" module:"openconfig-platform"` + Fan *OpenconfigPlatform_Components_Component_Fan `path:"fan" module:"openconfig-platform"` + IntegratedCircuit *OpenconfigPlatform_Components_Component_IntegratedCircuit `path:"integrated-circuit" module:"openconfig-platform"` + Name *string `path:"name" module:"openconfig-platform"` + OpticalChannel *OpenconfigPlatform_Components_Component_OpticalChannel `path:"optical-channel" module:"openconfig-terminal-device"` + Port *OpenconfigPlatform_Components_Component_Port `path:"port" module:"openconfig-platform"` + PowerSupply *OpenconfigPlatform_Components_Component_PowerSupply `path:"power-supply" module:"openconfig-platform"` + Properties *OpenconfigPlatform_Components_Component_Properties `path:"properties" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_State `path:"state" module:"openconfig-platform"` + Storage *OpenconfigPlatform_Components_Component_Storage `path:"storage" module:"openconfig-platform"` + Subcomponents *OpenconfigPlatform_Components_Component_Subcomponents `path:"subcomponents" module:"openconfig-platform"` + Transceiver *OpenconfigPlatform_Components_Component_Transceiver `path:"transceiver" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component struct, which is a YANG list entry. +func (t *OpenconfigPlatform_Components_Component) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Backplane represents the /openconfig-platform/components/component/backplane YANG schema element. +type OpenconfigPlatform_Components_Component_Backplane struct { + Config *OpenconfigPlatform_Components_Component_Backplane_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Backplane_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Backplane) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Backplane) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Backplane) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Backplane_Config represents the /openconfig-platform/components/component/backplane/config YANG schema element. +type OpenconfigPlatform_Components_Component_Backplane_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Backplane_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Backplane_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Backplane_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Backplane_State represents the /openconfig-platform/components/component/backplane/state YANG schema element. +type OpenconfigPlatform_Components_Component_Backplane_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Backplane_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Backplane_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Backplane_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Backplane_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Backplane_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Chassis represents the /openconfig-platform/components/component/chassis YANG schema element. +type OpenconfigPlatform_Components_Component_Chassis struct { + Config *OpenconfigPlatform_Components_Component_Chassis_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Chassis_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Chassis) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Chassis) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Chassis) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Chassis_Config represents the /openconfig-platform/components/component/chassis/config YANG schema element. +type OpenconfigPlatform_Components_Component_Chassis_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Chassis_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Chassis_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Chassis_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Chassis_State represents the /openconfig-platform/components/component/chassis/state YANG schema element. +type OpenconfigPlatform_Components_Component_Chassis_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Chassis_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Chassis_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Chassis_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Chassis_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Chassis_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Config represents the /openconfig-platform/components/component/config YANG schema element. +type OpenconfigPlatform_Components_Component_Config struct { + Name *string `path:"name" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Cpu represents the /openconfig-platform/components/component/cpu YANG schema element. +type OpenconfigPlatform_Components_Component_Cpu struct { + Config *OpenconfigPlatform_Components_Component_Cpu_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Cpu_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Cpu) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Cpu) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Cpu) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Cpu_Config represents the /openconfig-platform/components/component/cpu/config YANG schema element. +type OpenconfigPlatform_Components_Component_Cpu_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Cpu_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Cpu_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Cpu_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Cpu_State represents the /openconfig-platform/components/component/cpu/state YANG schema element. +type OpenconfigPlatform_Components_Component_Cpu_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Cpu_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Cpu_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Cpu_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Cpu_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Cpu_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fabric represents the /openconfig-platform/components/component/fabric YANG schema element. +type OpenconfigPlatform_Components_Component_Fabric struct { + Config *OpenconfigPlatform_Components_Component_Fabric_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Fabric_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fabric) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fabric) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fabric) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fabric_Config represents the /openconfig-platform/components/component/fabric/config YANG schema element. +type OpenconfigPlatform_Components_Component_Fabric_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fabric_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fabric_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fabric_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fabric_State represents the /openconfig-platform/components/component/fabric/state YANG schema element. +type OpenconfigPlatform_Components_Component_Fabric_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fabric_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fabric_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fabric_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fabric_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fabric_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fan represents the /openconfig-platform/components/component/fan YANG schema element. +type OpenconfigPlatform_Components_Component_Fan struct { + Config *OpenconfigPlatform_Components_Component_Fan_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Fan_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fan) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fan) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fan) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fan_Config represents the /openconfig-platform/components/component/fan/config YANG schema element. +type OpenconfigPlatform_Components_Component_Fan_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fan_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fan_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fan_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Fan_State represents the /openconfig-platform/components/component/fan/state YANG schema element. +type OpenconfigPlatform_Components_Component_Fan_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Fan_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Fan_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Fan_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Fan_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Fan_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_IntegratedCircuit represents the /openconfig-platform/components/component/integrated-circuit YANG schema element. +type OpenconfigPlatform_Components_Component_IntegratedCircuit struct { + Config *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_IntegratedCircuit_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_IntegratedCircuit) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_IntegratedCircuit_Config represents the /openconfig-platform/components/component/integrated-circuit/config YANG schema element. +type OpenconfigPlatform_Components_Component_IntegratedCircuit_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_IntegratedCircuit_State represents the /openconfig-platform/components/component/integrated-circuit/state YANG schema element. +type OpenconfigPlatform_Components_Component_IntegratedCircuit_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_IntegratedCircuit_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_IntegratedCircuit_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_IntegratedCircuit_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_IntegratedCircuit_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel represents the /openconfig-platform/components/component/optical-channel YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel struct { + Config *OpenconfigPlatform_Components_Component_OpticalChannel_Config `path:"config" module:"openconfig-terminal-device"` + State *OpenconfigPlatform_Components_Component_OpticalChannel_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_Config represents the /openconfig-platform/components/component/optical-channel/config YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_Config struct { + Frequency *uint64 `path:"frequency" module:"openconfig-terminal-device"` + LinePort *string `path:"line-port" module:"openconfig-terminal-device"` + OperationalMode *uint16 `path:"operational-mode" module:"openconfig-terminal-device"` + TargetOutputPower *float64 `path:"target-output-power" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State represents the /openconfig-platform/components/component/optical-channel/state YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State struct { + ChromaticDispersion *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion `path:"chromatic-dispersion" module:"openconfig-terminal-device"` + Frequency *uint64 `path:"frequency" module:"openconfig-terminal-device"` + GroupId *uint32 `path:"group-id" module:"openconfig-terminal-device"` + InputPower *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower `path:"input-power" module:"openconfig-terminal-device"` + LaserBiasCurrent *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent `path:"laser-bias-current" module:"openconfig-terminal-device"` + LinePort *string `path:"line-port" module:"openconfig-terminal-device"` + OperationalMode *uint16 `path:"operational-mode" module:"openconfig-terminal-device"` + OutputPower *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower `path:"output-power" module:"openconfig-terminal-device"` + PolarizationDependentLoss *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss `path:"polarization-dependent-loss" module:"openconfig-terminal-device"` + PolarizationModeDispersion *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion `path:"polarization-mode-dispersion" module:"openconfig-terminal-device"` + SecondOrderPolarizationModeDispersion *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion `path:"second-order-polarization-mode-dispersion" module:"openconfig-terminal-device"` + TargetOutputPower *float64 `path:"target-output-power" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion represents the /openconfig-platform/components/component/optical-channel/state/chromatic-dispersion YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_ChromaticDispersion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower represents the /openconfig-platform/components/component/optical-channel/state/input-power YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent represents the /openconfig-platform/components/component/optical-channel/state/laser-bias-current YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower represents the /openconfig-platform/components/component/optical-channel/state/output-power YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss represents the /openconfig-platform/components/component/optical-channel/state/polarization-dependent-loss YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationDependentLoss) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion represents the /openconfig-platform/components/component/optical-channel/state/polarization-mode-dispersion YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_PolarizationModeDispersion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion represents the /openconfig-platform/components/component/optical-channel/state/second-order-polarization-mode-dispersion YANG schema element. +type OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_OpticalChannel_State_SecondOrderPolarizationModeDispersion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port represents the /openconfig-platform/components/component/port YANG schema element. +type OpenconfigPlatform_Components_Component_Port struct { + BreakoutMode *OpenconfigPlatform_Components_Component_Port_BreakoutMode `path:"breakout-mode" module:"openconfig-platform-port"` + Config *OpenconfigPlatform_Components_Component_Port_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Port_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port_BreakoutMode represents the /openconfig-platform/components/component/port/breakout-mode YANG schema element. +type OpenconfigPlatform_Components_Component_Port_BreakoutMode struct { + Config *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config `path:"config" module:"openconfig-platform-port"` + State *OpenconfigPlatform_Components_Component_Port_BreakoutMode_State `path:"state" module:"openconfig-platform-port"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config represents the /openconfig-platform/components/component/port/breakout-mode/config YANG schema element. +type OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config struct { + ChannelSpeed E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"channel-speed" module:"openconfig-platform-port"` + NumChannels *uint8 `path:"num-channels" module:"openconfig-platform-port"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port_BreakoutMode_State represents the /openconfig-platform/components/component/port/breakout-mode/state YANG schema element. +type OpenconfigPlatform_Components_Component_Port_BreakoutMode_State struct { + ChannelSpeed E_OpenconfigIfEthernet_ETHERNET_SPEED `path:"channel-speed" module:"openconfig-platform-port"` + NumChannels *uint8 `path:"num-channels" module:"openconfig-platform-port"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_BreakoutMode_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port_BreakoutMode_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_BreakoutMode_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port_BreakoutMode_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port_Config represents the /openconfig-platform/components/component/port/config YANG schema element. +type OpenconfigPlatform_Components_Component_Port_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Port_State represents the /openconfig-platform/components/component/port/state YANG schema element. +type OpenconfigPlatform_Components_Component_Port_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Port_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Port_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Port_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Port_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Port_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_PowerSupply represents the /openconfig-platform/components/component/power-supply YANG schema element. +type OpenconfigPlatform_Components_Component_PowerSupply struct { + Config *OpenconfigPlatform_Components_Component_PowerSupply_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_PowerSupply_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_PowerSupply) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_PowerSupply) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_PowerSupply) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_PowerSupply_Config represents the /openconfig-platform/components/component/power-supply/config YANG schema element. +type OpenconfigPlatform_Components_Component_PowerSupply_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_PowerSupply_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_PowerSupply_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_PowerSupply_State represents the /openconfig-platform/components/component/power-supply/state YANG schema element. +type OpenconfigPlatform_Components_Component_PowerSupply_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_PowerSupply_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_PowerSupply_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_PowerSupply_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_PowerSupply_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Properties represents the /openconfig-platform/components/component/properties YANG schema element. +type OpenconfigPlatform_Components_Component_Properties struct { + Property map[string]*OpenconfigPlatform_Components_Component_Properties_Property `path:"property" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Properties) IsYANGGoStruct() {} + +// NewProperty creates a new entry in the Property list of the +// OpenconfigPlatform_Components_Component_Properties struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigPlatform_Components_Component_Properties) NewProperty(Name string) (*OpenconfigPlatform_Components_Component_Properties_Property, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Property == nil { + t.Property = make(map[string]*OpenconfigPlatform_Components_Component_Properties_Property) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Property[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Property", key) + } + + t.Property[key] = &OpenconfigPlatform_Components_Component_Properties_Property{ + Name: &Name, + } + + return t.Property[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Properties) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Properties) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Properties_Property represents the /openconfig-platform/components/component/properties/property YANG schema element. +type OpenconfigPlatform_Components_Component_Properties_Property struct { + Config *OpenconfigPlatform_Components_Component_Properties_Property_Config `path:"config" module:"openconfig-platform"` + Name *string `path:"name" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Properties_Property_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Properties_Property) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Properties_Property struct, which is a YANG list entry. +func (t *OpenconfigPlatform_Components_Component_Properties_Property) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Properties_Property) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Properties_Property) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Properties_Property_Config represents the /openconfig-platform/components/component/properties/property/config YANG schema element. +type OpenconfigPlatform_Components_Component_Properties_Property_Config struct { + Name *string `path:"name" module:"openconfig-platform"` + Value OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union `path:"value" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union is an interface that is implemented by valid types for the union +// for the leaf /openconfig-platform/components/component/properties/property/config/value within the YANG schema. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface { + Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() +} + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Bool is used when /openconfig-platform/components/component/properties/property/config/value +// is to be set to a bool value. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Bool struct { + Bool bool +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Bool +// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Bool) Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Float64 is used when /openconfig-platform/components/component/properties/property/config/value +// is to be set to a float64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Float64 struct { + Float64 float64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Float64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Float64) Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Int64 is used when /openconfig-platform/components/component/properties/property/config/value +// is to be set to a int64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Int64 struct { + Int64 int64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Int64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Int64) Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_String is used when /openconfig-platform/components/component/properties/property/config/value +// is to be set to a string value. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_String struct { + String string +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_String +// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_String) Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Uint64 is used when /openconfig-platform/components/component/properties/property/config/value +// is to be set to a uint64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Uint64 struct { + Uint64 uint64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Uint64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Uint64) Is_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union() {} + +// To_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union takes an input interface{} and attempts to convert it to a struct +// which implements the OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union union. It returns an error if the interface{} supplied +// cannot be converted to a type within the union. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_Config) To_OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union(i interface{}) (OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union, error) { + switch v := i.(type) { + case bool: + return &OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Bool{v}, nil + case float64: + return &OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Float64{v}, nil + case int64: + return &OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Int64{v}, nil + case string: + return &OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_String{v}, nil + case uint64: + return &OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union_Uint64{v}, nil + default: + return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_Properties_Property_Config_Value_Union, unknown union type, got: %T, want any of [bool, float64, int64, string, uint64]", i, i) + } +} + + +// OpenconfigPlatform_Components_Component_Properties_Property_State represents the /openconfig-platform/components/component/properties/property/state YANG schema element. +type OpenconfigPlatform_Components_Component_Properties_Property_State struct { + Configurable *bool `path:"configurable" module:"openconfig-platform"` + Name *string `path:"name" module:"openconfig-platform"` + Value OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union `path:"value" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Properties_Property_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Properties_Property_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union is an interface that is implemented by valid types for the union +// for the leaf /openconfig-platform/components/component/properties/property/state/value within the YANG schema. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface { + Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() +} + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Bool is used when /openconfig-platform/components/component/properties/property/state/value +// is to be set to a bool value. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Bool struct { + Bool bool +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Bool +// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Bool) Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Float64 is used when /openconfig-platform/components/component/properties/property/state/value +// is to be set to a float64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Float64 struct { + Float64 float64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Float64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Float64) Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Int64 is used when /openconfig-platform/components/component/properties/property/state/value +// is to be set to a int64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Int64 struct { + Int64 int64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Int64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Int64) Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_String is used when /openconfig-platform/components/component/properties/property/state/value +// is to be set to a string value. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_String struct { + String string +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_String +// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_String) Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {} + +// OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Uint64 is used when /openconfig-platform/components/component/properties/property/state/value +// is to be set to a uint64 value. +type OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Uint64 struct { + Uint64 uint64 +} + +// Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union ensures that OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Uint64 +// implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union interface. +func (*OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Uint64) Is_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union() {} + +// To_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union takes an input interface{} and attempts to convert it to a struct +// which implements the OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union union. It returns an error if the interface{} supplied +// cannot be converted to a type within the union. +func (t *OpenconfigPlatform_Components_Component_Properties_Property_State) To_OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union(i interface{}) (OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union, error) { + switch v := i.(type) { + case bool: + return &OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Bool{v}, nil + case float64: + return &OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Float64{v}, nil + case int64: + return &OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Int64{v}, nil + case string: + return &OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_String{v}, nil + case uint64: + return &OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union_Uint64{v}, nil + default: + return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_Properties_Property_State_Value_Union, unknown union type, got: %T, want any of [bool, float64, int64, string, uint64]", i, i) + } +} + + +// OpenconfigPlatform_Components_Component_State represents the /openconfig-platform/components/component/state YANG schema element. +type OpenconfigPlatform_Components_Component_State struct { + AllocatedPower *uint32 `path:"allocated-power" module:"openconfig-platform"` + Description *string `path:"description" module:"openconfig-platform"` + Empty *bool `path:"empty" module:"openconfig-platform"` + FirmwareVersion *string `path:"firmware-version" module:"openconfig-platform"` + HardwareVersion *string `path:"hardware-version" module:"openconfig-platform"` + Id *string `path:"id" module:"openconfig-platform"` + Location *string `path:"location" module:"openconfig-platform"` + Memory *OpenconfigPlatform_Components_Component_State_Memory `path:"memory" module:"openconfig-platform"` + MfgDate *string `path:"mfg-date" module:"openconfig-platform"` + MfgName *string `path:"mfg-name" module:"openconfig-platform"` + Name *string `path:"name" module:"openconfig-platform"` + OperStatus E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS `path:"oper-status" module:"openconfig-platform"` + Parent *string `path:"parent" module:"openconfig-platform"` + PartNo *string `path:"part-no" module:"openconfig-platform"` + Removable *bool `path:"removable" module:"openconfig-platform"` + SerialNo *string `path:"serial-no" module:"openconfig-platform"` + SoftwareVersion *string `path:"software-version" module:"openconfig-platform"` + Temperature *OpenconfigPlatform_Components_Component_State_Temperature `path:"temperature" module:"openconfig-platform"` + Type OpenconfigPlatform_Components_Component_State_Type_Union `path:"type" module:"openconfig-platform"` + UsedPower *uint32 `path:"used-power" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + +// OpenconfigPlatform_Components_Component_State_Type_Union is an interface that is implemented by valid types for the union +// for the leaf /openconfig-platform/components/component/state/type within the YANG schema. +type OpenconfigPlatform_Components_Component_State_Type_Union interface { + Is_OpenconfigPlatform_Components_Component_State_Type_Union() +} + +// OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT is used when /openconfig-platform/components/component/state/type +// is to be set to a E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT value. +type OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT struct { + E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT +} + +// Is_OpenconfigPlatform_Components_Component_State_Type_Union ensures that OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT +// implements the OpenconfigPlatform_Components_Component_State_Type_Union interface. +func (*OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) Is_OpenconfigPlatform_Components_Component_State_Type_Union() {} + +// OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT is used when /openconfig-platform/components/component/state/type +// is to be set to a E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT value. +type OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT struct { + E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT +} + +// Is_OpenconfigPlatform_Components_Component_State_Type_Union ensures that OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT +// implements the OpenconfigPlatform_Components_Component_State_Type_Union interface. +func (*OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) Is_OpenconfigPlatform_Components_Component_State_Type_Union() {} + +// To_OpenconfigPlatform_Components_Component_State_Type_Union takes an input interface{} and attempts to convert it to a struct +// which implements the OpenconfigPlatform_Components_Component_State_Type_Union union. It returns an error if the interface{} supplied +// cannot be converted to a type within the union. +func (t *OpenconfigPlatform_Components_Component_State) To_OpenconfigPlatform_Components_Component_State_Type_Union(i interface{}) (OpenconfigPlatform_Components_Component_State_Type_Union, error) { + switch v := i.(type) { + case E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT: + return &OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT{v}, nil + case E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT: + return &OpenconfigPlatform_Components_Component_State_Type_Union_E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT{v}, nil + default: + return nil, fmt.Errorf("cannot convert %v to OpenconfigPlatform_Components_Component_State_Type_Union, unknown union type, got: %T, want any of [E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT, E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT]", i, i) + } +} + + +// OpenconfigPlatform_Components_Component_State_Memory represents the /openconfig-platform/components/component/state/memory YANG schema element. +type OpenconfigPlatform_Components_Component_State_Memory struct { + Available *uint64 `path:"available" module:"openconfig-platform"` + Utilized *uint64 `path:"utilized" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Memory implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_State_Memory) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_State_Memory) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Memory"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_State_Memory) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_State_Temperature represents the /openconfig-platform/components/component/state/temperature YANG schema element. +type OpenconfigPlatform_Components_Component_State_Temperature struct { + AlarmSeverity E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY `path:"alarm-severity" module:"openconfig-platform"` + AlarmStatus *bool `path:"alarm-status" module:"openconfig-platform"` + AlarmThreshold *uint32 `path:"alarm-threshold" module:"openconfig-platform"` + Avg *float64 `path:"avg" module:"openconfig-platform"` + Instant *float64 `path:"instant" module:"openconfig-platform"` + Interval *uint64 `path:"interval" module:"openconfig-platform"` + Max *float64 `path:"max" module:"openconfig-platform"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform"` + Min *float64 `path:"min" module:"openconfig-platform"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_State_Temperature implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_State_Temperature) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_State_Temperature) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_State_Temperature"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_State_Temperature) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Storage represents the /openconfig-platform/components/component/storage YANG schema element. +type OpenconfigPlatform_Components_Component_Storage struct { + Config *OpenconfigPlatform_Components_Component_Storage_Config `path:"config" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Storage_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Storage) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Storage) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Storage) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Storage_Config represents the /openconfig-platform/components/component/storage/config YANG schema element. +type OpenconfigPlatform_Components_Component_Storage_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Storage_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Storage_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Storage_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Storage_State represents the /openconfig-platform/components/component/storage/state YANG schema element. +type OpenconfigPlatform_Components_Component_Storage_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Storage_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Storage_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Storage_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Storage_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Storage_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Subcomponents represents the /openconfig-platform/components/component/subcomponents YANG schema element. +type OpenconfigPlatform_Components_Component_Subcomponents struct { + Subcomponent map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent `path:"subcomponent" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Subcomponents) IsYANGGoStruct() {} + +// NewSubcomponent creates a new entry in the Subcomponent list of the +// OpenconfigPlatform_Components_Component_Subcomponents struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigPlatform_Components_Component_Subcomponents) NewSubcomponent(Name string) (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Subcomponent == nil { + t.Subcomponent = make(map[string]*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) + } + + key := Name + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Subcomponent[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Subcomponent", key) + } + + t.Subcomponent[key] = &OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent{ + Name: &Name, + } + + return t.Subcomponent[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Subcomponents) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Subcomponents) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent represents the /openconfig-platform/components/component/subcomponents/subcomponent YANG schema element. +type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent struct { + Config *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config `path:"config" module:"openconfig-platform"` + Name *string `path:"name" module:"openconfig-platform"` + State *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State `path:"state" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent struct, which is a YANG list entry. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛListKeyMap() (map[string]interface{}, error) { + if t.Name == nil { + return nil, fmt.Errorf("nil value for key Name") + } + + return map[string]interface{}{ + "name": *t.Name, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config represents the /openconfig-platform/components/component/subcomponents/subcomponent/config YANG schema element. +type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config struct { + Name *string `path:"name" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State represents the /openconfig-platform/components/component/subcomponents/subcomponent/state YANG schema element. +type OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State struct { + Name *string `path:"name" module:"openconfig-platform"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Subcomponents_Subcomponent_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver represents the /openconfig-platform/components/component/transceiver YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver struct { + Config *OpenconfigPlatform_Components_Component_Transceiver_Config `path:"config" module:"openconfig-platform-transceiver"` + PhysicalChannels *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels `path:"physical-channels" module:"openconfig-platform-transceiver"` + State *OpenconfigPlatform_Components_Component_Transceiver_State `path:"state" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_Config represents the /openconfig-platform/components/component/transceiver/config YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_Config struct { + Enabled *bool `path:"enabled" module:"openconfig-platform-transceiver"` + EthernetPmdPreconf E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE `path:"ethernet-pmd-preconf" module:"openconfig-platform-transceiver"` + FecMode E_OpenconfigPlatformTypes_FEC_MODE_TYPE `path:"fec-mode" module:"openconfig-platform-transceiver"` + FormFactorPreconf E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE `path:"form-factor-preconf" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels represents the /openconfig-platform/components/component/transceiver/physical-channels YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels struct { + Channel map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel `path:"channel" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) IsYANGGoStruct() {} + +// NewChannel creates a new entry in the Channel list of the +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) NewChannel(Index uint16) (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Channel == nil { + t.Channel = make(map[uint16]*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) + } + + key := Index + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Channel[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Channel", key) + } + + t.Channel[key] = &OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel{ + Index: &Index, + } + + return t.Channel[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel represents the /openconfig-platform/components/component/transceiver/physical-channels/channel YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel struct { + Config *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config `path:"config" module:"openconfig-platform-transceiver"` + Index *uint16 `path:"index" module:"openconfig-platform-transceiver"` + State *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State `path:"state" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel struct, which is a YANG list entry. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛListKeyMap() (map[string]interface{}, error) { + if t.Index == nil { + return nil, fmt.Errorf("nil value for key Index") + } + + return map[string]interface{}{ + "index": *t.Index, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/config YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config struct { + Description *string `path:"description" module:"openconfig-platform-transceiver"` + Index *uint16 `path:"index" module:"openconfig-platform-transceiver"` + TargetOutputPower *float64 `path:"target-output-power" module:"openconfig-platform-transceiver"` + TxLaser *bool `path:"tx-laser" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State struct { + Description *string `path:"description" module:"openconfig-platform-transceiver"` + Index *uint16 `path:"index" module:"openconfig-platform-transceiver"` + InputPower *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower `path:"input-power" module:"openconfig-platform-transceiver"` + LaserBiasCurrent *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent `path:"laser-bias-current" module:"openconfig-platform-transceiver"` + OutputFrequency *uint64 `path:"output-frequency" module:"openconfig-platform-transceiver"` + OutputPower *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower `path:"output-power" module:"openconfig-platform-transceiver"` + TargetOutputPower *float64 `path:"target-output-power" module:"openconfig-platform-transceiver"` + TxLaser *bool `path:"tx-laser" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/input-power YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/laser-bias-current YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower represents the /openconfig-platform/components/component/transceiver/physical-channels/channel/state/output-power YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_PhysicalChannels_Channel_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State represents the /openconfig-platform/components/component/transceiver/state YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State struct { + ConnectorType E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE `path:"connector-type" module:"openconfig-platform-transceiver"` + DateCode *string `path:"date-code" module:"openconfig-platform-transceiver"` + Enabled *bool `path:"enabled" module:"openconfig-platform-transceiver"` + EthernetPmd E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE `path:"ethernet-pmd" module:"openconfig-platform-transceiver"` + EthernetPmdPreconf E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE `path:"ethernet-pmd-preconf" module:"openconfig-platform-transceiver"` + FaultCondition *bool `path:"fault-condition" module:"openconfig-platform-transceiver"` + FecCorrectedBits *uint64 `path:"fec-corrected-bits" module:"openconfig-platform-transceiver"` + FecCorrectedBytes *uint64 `path:"fec-corrected-bytes" module:"openconfig-platform-transceiver"` + FecMode E_OpenconfigPlatformTypes_FEC_MODE_TYPE `path:"fec-mode" module:"openconfig-platform-transceiver"` + FecStatus E_OpenconfigPlatformTypes_FEC_STATUS_TYPE `path:"fec-status" module:"openconfig-platform-transceiver"` + FecUncorrectableBlocks *uint64 `path:"fec-uncorrectable-blocks" module:"openconfig-platform-transceiver"` + FecUncorrectableWords *uint64 `path:"fec-uncorrectable-words" module:"openconfig-platform-transceiver"` + FormFactor E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE `path:"form-factor" module:"openconfig-platform-transceiver"` + FormFactorPreconf E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE `path:"form-factor-preconf" module:"openconfig-platform-transceiver"` + InputPower *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower `path:"input-power" module:"openconfig-platform-transceiver"` + LaserBiasCurrent *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent `path:"laser-bias-current" module:"openconfig-platform-transceiver"` + OtnComplianceCode E_OpenconfigTransportTypes_OTN_APPLICATION_CODE `path:"otn-compliance-code" module:"openconfig-platform-transceiver"` + OutputPower *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower `path:"output-power" module:"openconfig-platform-transceiver"` + PostFecBer *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer `path:"post-fec-ber" module:"openconfig-platform-transceiver"` + PreFecBer *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer `path:"pre-fec-ber" module:"openconfig-platform-transceiver"` + Present E_OpenconfigPlatform_Components_Component_Transceiver_State_Present `path:"present" module:"openconfig-platform-transceiver"` + SerialNo *string `path:"serial-no" module:"openconfig-platform-transceiver"` + SonetSdhComplianceCode E_OpenconfigTransportTypes_SONET_APPLICATION_CODE `path:"sonet-sdh-compliance-code" module:"openconfig-platform-transceiver"` + Vendor *string `path:"vendor" module:"openconfig-platform-transceiver"` + VendorPart *string `path:"vendor-part" module:"openconfig-platform-transceiver"` + VendorRev *string `path:"vendor-rev" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State_InputPower represents the /openconfig-platform/components/component/transceiver/state/input-power YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State_InputPower struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_InputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_InputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_InputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent represents the /openconfig-platform/components/component/transceiver/state/laser-bias-current YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_LaserBiasCurrent) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower represents the /openconfig-platform/components/component/transceiver/state/output-power YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_OutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer represents the /openconfig-platform/components/component/transceiver/state/post-fec-ber YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer represents the /openconfig-platform/components/component/transceiver/state/pre-fec-ber YANG schema element. +type OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer struct { + Avg *float64 `path:"avg" module:"openconfig-platform-transceiver"` + Instant *float64 `path:"instant" module:"openconfig-platform-transceiver"` + Interval *uint64 `path:"interval" module:"openconfig-platform-transceiver"` + Max *float64 `path:"max" module:"openconfig-platform-transceiver"` + MaxTime *uint64 `path:"max-time" module:"openconfig-platform-transceiver"` + Min *float64 `path:"min" module:"openconfig-platform-transceiver"` + MinTime *uint64 `path:"min-time" module:"openconfig-platform-transceiver"` +} + +// IsYANGGoStruct ensures that OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigPlatform_Components_Component_Transceiver_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice represents the /openconfig-terminal-device/terminal-device YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice struct { + Config *OpenconfigTerminalDevice_TerminalDevice_Config `path:"config" module:"openconfig-terminal-device"` + LogicalChannels *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels `path:"logical-channels" module:"openconfig-terminal-device"` + OperationalModes *OpenconfigTerminalDevice_TerminalDevice_OperationalModes `path:"operational-modes" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_Config represents the /openconfig-terminal-device/terminal-device/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels represents the /openconfig-terminal-device/terminal-device/logical-channels YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels struct { + Channel map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel `path:"channel" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) IsYANGGoStruct() {} + +// NewChannel creates a new entry in the Channel list of the +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) NewChannel(Index uint32) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Channel == nil { + t.Channel = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) + } + + key := Index + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Channel[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Channel", key) + } + + t.Channel[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel{ + Index: &Index, + } + + return t.Channel[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel represents the /openconfig-terminal-device/terminal-device/logical-channels/channel YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config `path:"config" module:"openconfig-terminal-device"` + Ethernet *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet `path:"ethernet" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + Ingress *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress `path:"ingress" module:"openconfig-terminal-device"` + LogicalChannelAssignments *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments `path:"logical-channel-assignments" module:"openconfig-terminal-device"` + Otn *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn `path:"otn" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel struct, which is a YANG list entry. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛListKeyMap() (map[string]interface{}, error) { + if t.Index == nil { + return nil, fmt.Errorf("nil value for key Index") + } + + return map[string]interface{}{ + "index": *t.Index, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config struct { + AdminState E_OpenconfigTerminalDevice_AdminStateType `path:"admin-state" module:"openconfig-terminal-device"` + Description *string `path:"description" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + LogicalChannelType E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE `path:"logical-channel-type" module:"openconfig-terminal-device"` + LoopbackMode E_OpenconfigTerminalDevice_LoopbackModeType `path:"loopback-mode" module:"openconfig-terminal-device"` + RateClass E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE `path:"rate-class" module:"openconfig-terminal-device"` + TestSignal *bool `path:"test-signal" module:"openconfig-terminal-device"` + TribProtocol E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE `path:"trib-protocol" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config `path:"config" module:"openconfig-terminal-device"` + Lldp *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp `path:"lldp" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config struct { + AlsDelay *uint32 `path:"als-delay" module:"openconfig-terminal-device"` + ClientAls E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls `path:"client-als" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config `path:"config" module:"openconfig-terminal-device"` + Neighbors *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors `path:"neighbors" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config struct { + Enabled *bool `path:"enabled" module:"openconfig-terminal-device"` + Snooping *bool `path:"snooping" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors struct { + Neighbor map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor `path:"neighbor" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) IsYANGGoStruct() {} + +// NewNeighbor creates a new entry in the Neighbor list of the +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) NewNeighbor(Id string) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Neighbor == nil { + t.Neighbor = make(map[string]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) + } + + key := Id + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Neighbor[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Neighbor", key) + } + + t.Neighbor[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor{ + Id: &Id, + } + + return t.Neighbor[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config `path:"config" module:"openconfig-terminal-device"` + CustomTlvs *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs `path:"custom-tlvs" module:"openconfig-terminal-device"` + Id *string `path:"id" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor struct, which is a YANG list entry. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛListKeyMap() (map[string]interface{}, error) { + if t.Id == nil { + return nil, fmt.Errorf("nil value for key Id") + } + + return map[string]interface{}{ + "id": *t.Id, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs struct { + Tlv map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv `path:"tlv" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) IsYANGGoStruct() {} + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key represents the key for list Tlv of element /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key struct { + Type int32 `path:"type"` + Oui string `path:"oui"` + OuiSubtype string `path:"oui-subtype"` +} + +// NewTlv creates a new entry in the Tlv list of the +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) NewTlv(Type int32, Oui string, OuiSubtype string) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Tlv == nil { + t.Tlv = make(map[OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) + } + + key := OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Key{ + Type: Type, + Oui: Oui, + OuiSubtype: OuiSubtype, + } + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Tlv[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Tlv", key) + } + + t.Tlv[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv{ + Type: &Type, + Oui: &Oui, + OuiSubtype: &OuiSubtype, + } + + return t.Tlv[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config `path:"config" module:"openconfig-terminal-device"` + Oui *string `path:"oui" module:"openconfig-terminal-device"` + OuiSubtype *string `path:"oui-subtype" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State `path:"state" module:"openconfig-terminal-device"` + Type *int32 `path:"type" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv struct, which is a YANG list entry. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛListKeyMap() (map[string]interface{}, error) { + if t.Oui == nil { + return nil, fmt.Errorf("nil value for key Oui") + } + + if t.OuiSubtype == nil { + return nil, fmt.Errorf("nil value for key OuiSubtype") + } + + if t.Type == nil { + return nil, fmt.Errorf("nil value for key Type") + } + + return map[string]interface{}{ + "oui": *t.Oui, + "oui-subtype": *t.OuiSubtype, + "type": *t.Type, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/custom-tlvs/tlv/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State struct { + Oui *string `path:"oui" module:"openconfig-terminal-device"` + OuiSubtype *string `path:"oui-subtype" module:"openconfig-terminal-device"` + Type *int32 `path:"type" module:"openconfig-terminal-device"` + Value Binary `path:"value" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_CustomTlvs_Tlv_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State struct { + Age *uint64 `path:"age" module:"openconfig-terminal-device"` + ChassisId *string `path:"chassis-id" module:"openconfig-terminal-device"` + ChassisIdType E_OpenconfigLldp_ChassisIdType `path:"chassis-id-type" module:"openconfig-terminal-device"` + Id *string `path:"id" module:"openconfig-terminal-device"` + LastUpdate *int64 `path:"last-update" module:"openconfig-terminal-device"` + ManagementAddress *string `path:"management-address" module:"openconfig-terminal-device"` + ManagementAddressType *string `path:"management-address-type" module:"openconfig-terminal-device"` + PortDescription *string `path:"port-description" module:"openconfig-terminal-device"` + PortId *string `path:"port-id" module:"openconfig-terminal-device"` + PortIdType E_OpenconfigLldp_PortIdType `path:"port-id-type" module:"openconfig-terminal-device"` + SystemDescription *string `path:"system-description" module:"openconfig-terminal-device"` + SystemName *string `path:"system-name" module:"openconfig-terminal-device"` + Ttl *uint16 `path:"ttl" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_Neighbors_Neighbor_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State struct { + Counters *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters `path:"counters" module:"openconfig-terminal-device"` + Enabled *bool `path:"enabled" module:"openconfig-terminal-device"` + Snooping *bool `path:"snooping" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/lldp/state/counters YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters struct { + FrameDiscard *uint64 `path:"frame-discard" module:"openconfig-terminal-device"` + FrameErrorIn *uint64 `path:"frame-error-in" module:"openconfig-terminal-device"` + FrameErrorOut *uint64 `path:"frame-error-out" module:"openconfig-terminal-device"` + FrameIn *uint64 `path:"frame-in" module:"openconfig-terminal-device"` + FrameOut *uint64 `path:"frame-out" module:"openconfig-terminal-device"` + LastClear *string `path:"last-clear" module:"openconfig-terminal-device"` + TlvDiscard *uint64 `path:"tlv-discard" module:"openconfig-terminal-device"` + TlvUnknown *uint64 `path:"tlv-unknown" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Lldp_State_Counters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ethernet/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State struct { + AlsDelay *uint32 `path:"als-delay" module:"openconfig-terminal-device"` + ClientAls E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls `path:"client-als" module:"openconfig-terminal-device"` + In_8021QFrames *uint64 `path:"in-8021q-frames" module:"openconfig-terminal-device"` + InBlockErrors *uint64 `path:"in-block-errors" module:"openconfig-terminal-device"` + InCrcErrors *uint64 `path:"in-crc-errors" module:"openconfig-terminal-device"` + InFragmentFrames *uint64 `path:"in-fragment-frames" module:"openconfig-terminal-device"` + InJabberFrames *uint64 `path:"in-jabber-frames" module:"openconfig-terminal-device"` + InMacControlFrames *uint64 `path:"in-mac-control-frames" module:"openconfig-terminal-device"` + InMacPauseFrames *uint64 `path:"in-mac-pause-frames" module:"openconfig-terminal-device"` + InOversizeFrames *uint64 `path:"in-oversize-frames" module:"openconfig-terminal-device"` + InPcsBipErrors *uint64 `path:"in-pcs-bip-errors" module:"openconfig-terminal-device"` + InPcsErroredSeconds *uint64 `path:"in-pcs-errored-seconds" module:"openconfig-terminal-device"` + InPcsSeverelyErroredSeconds *uint64 `path:"in-pcs-severely-errored-seconds" module:"openconfig-terminal-device"` + InPcsUnavailableSeconds *uint64 `path:"in-pcs-unavailable-seconds" module:"openconfig-terminal-device"` + InUndersizeFrames *uint64 `path:"in-undersize-frames" module:"openconfig-terminal-device"` + Out_8021QFrames *uint64 `path:"out-8021q-frames" module:"openconfig-terminal-device"` + OutBlockErrors *uint64 `path:"out-block-errors" module:"openconfig-terminal-device"` + OutCrcErrors *uint64 `path:"out-crc-errors" module:"openconfig-terminal-device"` + OutMacControlFrames *uint64 `path:"out-mac-control-frames" module:"openconfig-terminal-device"` + OutMacPauseFrames *uint64 `path:"out-mac-pause-frames" module:"openconfig-terminal-device"` + OutPcsBipErrors *uint64 `path:"out-pcs-bip-errors" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config `path:"config" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config struct { + PhysicalChannel []uint16 `path:"physical-channel" module:"openconfig-terminal-device"` + Transceiver *string `path:"transceiver" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/ingress/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State struct { + PhysicalChannel []uint16 `path:"physical-channel" module:"openconfig-terminal-device"` + Transceiver *string `path:"transceiver" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ingress_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments struct { + Assignment map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment `path:"assignment" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) IsYANGGoStruct() {} + +// NewAssignment creates a new entry in the Assignment list of the +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) NewAssignment(Index uint32) (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Assignment == nil { + t.Assignment = make(map[uint32]*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) + } + + key := Index + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Assignment[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Assignment", key) + } + + t.Assignment[key] = &OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment{ + Index: &Index, + } + + return t.Assignment[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config `path:"config" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment struct, which is a YANG list entry. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛListKeyMap() (map[string]interface{}, error) { + if t.Index == nil { + return nil, fmt.Errorf("nil value for key Index") + } + + return map[string]interface{}{ + "index": *t.Index, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config struct { + Allocation *float64 `path:"allocation" module:"openconfig-terminal-device"` + AssignmentType E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType `path:"assignment-type" module:"openconfig-terminal-device"` + Description *string `path:"description" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + LogicalChannel *uint32 `path:"logical-channel" module:"openconfig-terminal-device"` + Mapping E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL `path:"mapping" module:"openconfig-terminal-device"` + OpticalChannel *string `path:"optical-channel" module:"openconfig-terminal-device"` + TributarySlotIndex *int32 `path:"tributary-slot-index" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State struct { + Allocation *float64 `path:"allocation" module:"openconfig-terminal-device"` + AssignmentType E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType `path:"assignment-type" module:"openconfig-terminal-device"` + Description *string `path:"description" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + LogicalChannel *uint32 `path:"logical-channel" module:"openconfig-terminal-device"` + Mapping E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL `path:"mapping" module:"openconfig-terminal-device"` + OpticalChannel *string `path:"optical-channel" module:"openconfig-terminal-device"` + TributarySlotIndex *int32 `path:"tributary-slot-index" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn struct { + Config *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config `path:"config" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config struct { + TributarySlotGranularity E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY `path:"tributary-slot-granularity" module:"openconfig-terminal-device"` + TtiMsgAuto *bool `path:"tti-msg-auto" module:"openconfig-terminal-device"` + TtiMsgExpected *string `path:"tti-msg-expected" module:"openconfig-terminal-device"` + TtiMsgTransmit *string `path:"tti-msg-transmit" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State struct { + BackgroundBlockErrors *uint64 `path:"background-block-errors" module:"openconfig-terminal-device"` + CodeViolations *uint64 `path:"code-violations" module:"openconfig-terminal-device"` + ErroredBlocks *uint64 `path:"errored-blocks" module:"openconfig-terminal-device"` + ErroredSeconds *uint64 `path:"errored-seconds" module:"openconfig-terminal-device"` + Esnr *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr `path:"esnr" module:"openconfig-terminal-device"` + FecCorrectedBits *uint64 `path:"fec-corrected-bits" module:"openconfig-terminal-device"` + FecCorrectedBytes *uint64 `path:"fec-corrected-bytes" module:"openconfig-terminal-device"` + FecUncorrectableBlocks *uint64 `path:"fec-uncorrectable-blocks" module:"openconfig-terminal-device"` + FecUncorrectableWords *uint64 `path:"fec-uncorrectable-words" module:"openconfig-terminal-device"` + PostFecBer *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer `path:"post-fec-ber" module:"openconfig-terminal-device"` + PreFecBer *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer `path:"pre-fec-ber" module:"openconfig-terminal-device"` + QValue *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue `path:"q-value" module:"openconfig-terminal-device"` + RdiMsg *string `path:"rdi-msg" module:"openconfig-terminal-device"` + SeverelyErroredSeconds *uint64 `path:"severely-errored-seconds" module:"openconfig-terminal-device"` + TributarySlotGranularity E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY `path:"tributary-slot-granularity" module:"openconfig-terminal-device"` + TtiMsgAuto *bool `path:"tti-msg-auto" module:"openconfig-terminal-device"` + TtiMsgExpected *string `path:"tti-msg-expected" module:"openconfig-terminal-device"` + TtiMsgRecv *string `path:"tti-msg-recv" module:"openconfig-terminal-device"` + TtiMsgTransmit *string `path:"tti-msg-transmit" module:"openconfig-terminal-device"` + UnavailableSeconds *uint64 `path:"unavailable-seconds" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/esnr YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_Esnr) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/post-fec-ber YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PostFecBer) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/pre-fec-ber YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_PreFecBer) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/otn/state/q-value YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue struct { + Avg *float64 `path:"avg" module:"openconfig-terminal-device"` + Instant *float64 `path:"instant" module:"openconfig-terminal-device"` + Interval *uint64 `path:"interval" module:"openconfig-terminal-device"` + Max *float64 `path:"max" module:"openconfig-terminal-device"` + MaxTime *uint64 `path:"max-time" module:"openconfig-terminal-device"` + Min *float64 `path:"min" module:"openconfig-terminal-device"` + MinTime *uint64 `path:"min-time" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Otn_State_QValue) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State represents the /openconfig-terminal-device/terminal-device/logical-channels/channel/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State struct { + AdminState E_OpenconfigTerminalDevice_AdminStateType `path:"admin-state" module:"openconfig-terminal-device"` + Description *string `path:"description" module:"openconfig-terminal-device"` + Index *uint32 `path:"index" module:"openconfig-terminal-device"` + LinkState E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState `path:"link-state" module:"openconfig-terminal-device"` + LogicalChannelType E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE `path:"logical-channel-type" module:"openconfig-terminal-device"` + LoopbackMode E_OpenconfigTerminalDevice_LoopbackModeType `path:"loopback-mode" module:"openconfig-terminal-device"` + RateClass E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE `path:"rate-class" module:"openconfig-terminal-device"` + TestSignal *bool `path:"test-signal" module:"openconfig-terminal-device"` + TribProtocol E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE `path:"trib-protocol" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_OperationalModes represents the /openconfig-terminal-device/terminal-device/operational-modes YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_OperationalModes struct { + Mode map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode `path:"mode" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes) IsYANGGoStruct() {} + +// NewMode creates a new entry in the Mode list of the +// OpenconfigTerminalDevice_TerminalDevice_OperationalModes struct. The keys of the list are populated from the input +// arguments. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) NewMode(ModeId uint16) (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode, error){ + + // Initialise the list within the receiver struct if it has not already been + // created. + if t.Mode == nil { + t.Mode = make(map[uint16]*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) + } + + key := ModeId + + // Ensure that this key has not already been used in the + // list. Keyed YANG lists do not allow duplicate keys to + // be created. + if _, ok := t.Mode[key]; ok { + return nil, fmt.Errorf("duplicate key %v for list Mode", key) + } + + t.Mode[key] = &OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode{ + ModeId: &ModeId, + } + + return t.Mode[key], nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode represents the /openconfig-terminal-device/terminal-device/operational-modes/mode YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode struct { + Config *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config `path:"config" module:"openconfig-terminal-device"` + ModeId *uint16 `path:"mode-id" module:"openconfig-terminal-device"` + State *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State `path:"state" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) IsYANGGoStruct() {} + +// ΛListKeyMap returns the keys of the OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode struct, which is a YANG list entry. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛListKeyMap() (map[string]interface{}, error) { + if t.ModeId == nil { + return nil, fmt.Errorf("nil value for key ModeId") + } + + return map[string]interface{}{ + "mode-id": *t.ModeId, + }, nil +} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config represents the /openconfig-terminal-device/terminal-device/operational-modes/mode/config YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config struct { +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_Config) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State represents the /openconfig-terminal-device/terminal-device/operational-modes/mode/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State struct { + Description *string `path:"description" module:"openconfig-terminal-device"` + ModeId *uint16 `path:"mode-id" module:"openconfig-terminal-device"` + VendorId *string `path:"vendor-id" module:"openconfig-terminal-device"` +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_OperationalModes_Mode_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// OpenconfigTerminalDevice_TerminalDevice_State represents the /openconfig-terminal-device/terminal-device/state YANG schema element. +type OpenconfigTerminalDevice_TerminalDevice_State struct { +} + +// IsYANGGoStruct ensures that OpenconfigTerminalDevice_TerminalDevice_State implements the yang.GoStruct +// interface. This allows functions that need to handle this struct to +// identify it as being generated by ygen. +func (*OpenconfigTerminalDevice_TerminalDevice_State) IsYANGGoStruct() {} + +// Validate validates s against the YANG schema corresponding to its type. +func (t *OpenconfigTerminalDevice_TerminalDevice_State) Validate(opts ...ygot.ValidationOption) error { + if err := ytypes.Validate(SchemaTree["OpenconfigTerminalDevice_TerminalDevice_State"], t, opts...); err != nil { + return err + } + return nil +} + +// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types +// that are included in the generated code. +func (t *OpenconfigTerminalDevice_TerminalDevice_State) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes } + + +// E_IETFInterfaces_InterfaceType is a derived int64 type which is used to represent +// the enumerated node IETFInterfaces_InterfaceType. An additional value named +// IETFInterfaces_InterfaceType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_IETFInterfaces_InterfaceType int64 + +// IsYANGGoEnum ensures that IETFInterfaces_InterfaceType implements the yang.GoEnum +// interface. This ensures that IETFInterfaces_InterfaceType can be identified as a +// mapped type for a YANG enumeration. +func (E_IETFInterfaces_InterfaceType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with IETFInterfaces_InterfaceType. +func (E_IETFInterfaces_InterfaceType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // IETFInterfaces_InterfaceType_UNSET corresponds to the value UNSET of IETFInterfaces_InterfaceType + IETFInterfaces_InterfaceType_UNSET E_IETFInterfaces_InterfaceType = 0 +) + + +// E_IETFInterfaces_InterfacesState_Interface_AdminStatus is a derived int64 type which is used to represent +// the enumerated node IETFInterfaces_InterfacesState_Interface_AdminStatus. An additional value named +// IETFInterfaces_InterfacesState_Interface_AdminStatus_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_IETFInterfaces_InterfacesState_Interface_AdminStatus int64 + +// IsYANGGoEnum ensures that IETFInterfaces_InterfacesState_Interface_AdminStatus implements the yang.GoEnum +// interface. This ensures that IETFInterfaces_InterfacesState_Interface_AdminStatus can be identified as a +// mapped type for a YANG enumeration. +func (E_IETFInterfaces_InterfacesState_Interface_AdminStatus) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with IETFInterfaces_InterfacesState_Interface_AdminStatus. +func (E_IETFInterfaces_InterfacesState_Interface_AdminStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // IETFInterfaces_InterfacesState_Interface_AdminStatus_UNSET corresponds to the value UNSET of IETFInterfaces_InterfacesState_Interface_AdminStatus + IETFInterfaces_InterfacesState_Interface_AdminStatus_UNSET E_IETFInterfaces_InterfacesState_Interface_AdminStatus = 0 + // IETFInterfaces_InterfacesState_Interface_AdminStatus_up corresponds to the value up of IETFInterfaces_InterfacesState_Interface_AdminStatus + IETFInterfaces_InterfacesState_Interface_AdminStatus_up E_IETFInterfaces_InterfacesState_Interface_AdminStatus = 2 + // IETFInterfaces_InterfacesState_Interface_AdminStatus_down corresponds to the value down of IETFInterfaces_InterfacesState_Interface_AdminStatus + IETFInterfaces_InterfacesState_Interface_AdminStatus_down E_IETFInterfaces_InterfacesState_Interface_AdminStatus = 3 + // IETFInterfaces_InterfacesState_Interface_AdminStatus_testing corresponds to the value testing of IETFInterfaces_InterfacesState_Interface_AdminStatus + IETFInterfaces_InterfacesState_Interface_AdminStatus_testing E_IETFInterfaces_InterfacesState_Interface_AdminStatus = 4 +) + + +// E_IETFInterfaces_InterfacesState_Interface_OperStatus is a derived int64 type which is used to represent +// the enumerated node IETFInterfaces_InterfacesState_Interface_OperStatus. An additional value named +// IETFInterfaces_InterfacesState_Interface_OperStatus_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_IETFInterfaces_InterfacesState_Interface_OperStatus int64 + +// IsYANGGoEnum ensures that IETFInterfaces_InterfacesState_Interface_OperStatus implements the yang.GoEnum +// interface. This ensures that IETFInterfaces_InterfacesState_Interface_OperStatus can be identified as a +// mapped type for a YANG enumeration. +func (E_IETFInterfaces_InterfacesState_Interface_OperStatus) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with IETFInterfaces_InterfacesState_Interface_OperStatus. +func (E_IETFInterfaces_InterfacesState_Interface_OperStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // IETFInterfaces_InterfacesState_Interface_OperStatus_UNSET corresponds to the value UNSET of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_UNSET E_IETFInterfaces_InterfacesState_Interface_OperStatus = 0 + // IETFInterfaces_InterfacesState_Interface_OperStatus_up corresponds to the value up of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_up E_IETFInterfaces_InterfacesState_Interface_OperStatus = 2 + // IETFInterfaces_InterfacesState_Interface_OperStatus_down corresponds to the value down of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_down E_IETFInterfaces_InterfacesState_Interface_OperStatus = 3 + // IETFInterfaces_InterfacesState_Interface_OperStatus_testing corresponds to the value testing of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_testing E_IETFInterfaces_InterfacesState_Interface_OperStatus = 4 + // IETFInterfaces_InterfacesState_Interface_OperStatus_unknown corresponds to the value unknown of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_unknown E_IETFInterfaces_InterfacesState_Interface_OperStatus = 5 + // IETFInterfaces_InterfacesState_Interface_OperStatus_dormant corresponds to the value dormant of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_dormant E_IETFInterfaces_InterfacesState_Interface_OperStatus = 6 + // IETFInterfaces_InterfacesState_Interface_OperStatus_not_present corresponds to the value not_present of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_not_present E_IETFInterfaces_InterfacesState_Interface_OperStatus = 7 + // IETFInterfaces_InterfacesState_Interface_OperStatus_lower_layer_down corresponds to the value lower_layer_down of IETFInterfaces_InterfacesState_Interface_OperStatus + IETFInterfaces_InterfacesState_Interface_OperStatus_lower_layer_down E_IETFInterfaces_InterfacesState_Interface_OperStatus = 8 +) + + +// E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY is a derived int64 type which is used to represent +// the enumerated node OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY. An additional value named +// OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY int64 + +// IsYANGGoEnum ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY implements the yang.GoEnum +// interface. This ensures that OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY. +func (E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET corresponds to the value UNSET of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNSET E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 0 + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_CRITICAL corresponds to the value CRITICAL of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_CRITICAL E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 1 + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MAJOR corresponds to the value MAJOR of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MAJOR E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 2 + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MINOR corresponds to the value MINOR of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_MINOR E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 3 + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNKNOWN corresponds to the value UNKNOWN of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_UNKNOWN E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 4 + // OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_WARNING corresponds to the value WARNING of OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY + OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY_WARNING E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY = 5 +) + + +// E_OpenconfigIfEthernet_ETHERNET_SPEED is a derived int64 type which is used to represent +// the enumerated node OpenconfigIfEthernet_ETHERNET_SPEED. An additional value named +// OpenconfigIfEthernet_ETHERNET_SPEED_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigIfEthernet_ETHERNET_SPEED int64 + +// IsYANGGoEnum ensures that OpenconfigIfEthernet_ETHERNET_SPEED implements the yang.GoEnum +// interface. This ensures that OpenconfigIfEthernet_ETHERNET_SPEED can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigIfEthernet_ETHERNET_SPEED) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigIfEthernet_ETHERNET_SPEED. +func (E_OpenconfigIfEthernet_ETHERNET_SPEED) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigIfEthernet_ETHERNET_SPEED_UNSET corresponds to the value UNSET of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_UNSET E_OpenconfigIfEthernet_ETHERNET_SPEED = 0 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100GB corresponds to the value SPEED_100GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 1 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100MB corresponds to the value SPEED_100MB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_100MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 2 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10GB corresponds to the value SPEED_10GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 3 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10MB corresponds to the value SPEED_10MB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_10MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 4 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_1GB corresponds to the value SPEED_1GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_1GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 5 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_2500MB corresponds to the value SPEED_2500MB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_2500MB E_OpenconfigIfEthernet_ETHERNET_SPEED = 6 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_25GB corresponds to the value SPEED_25GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_25GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 7 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_40GB corresponds to the value SPEED_40GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_40GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 8 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_50GB corresponds to the value SPEED_50GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_50GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 9 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_5GB corresponds to the value SPEED_5GB of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_5GB E_OpenconfigIfEthernet_ETHERNET_SPEED = 10 + // OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_UNKNOWN corresponds to the value SPEED_UNKNOWN of OpenconfigIfEthernet_ETHERNET_SPEED + OpenconfigIfEthernet_ETHERNET_SPEED_SPEED_UNKNOWN E_OpenconfigIfEthernet_ETHERNET_SPEED = 11 +) + + +// E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode is a derived int64 type which is used to represent +// the enumerated node OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode. An additional value named +// OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode int64 + +// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode implements the yang.GoEnum +// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode. +func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_UNSET E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 0 + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_FULL corresponds to the value FULL of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_FULL E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 1 + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_HALF corresponds to the value HALF of OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode_HALF E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode = 2 +) + + +// E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode is a derived int64 type which is used to represent +// the enumerated node OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode. An additional value named +// OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode int64 + +// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode implements the yang.GoEnum +// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode. +func (E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_UNSET E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 0 + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_FULL corresponds to the value FULL of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_FULL E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 1 + // OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_HALF corresponds to the value HALF of OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode + OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode_HALF E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode = 2 +) + + +// E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus is a derived int64 type which is used to represent +// the enumerated node OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus. An additional value named +// OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus int64 + +// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus implements the yang.GoEnum +// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus. +func (E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus + OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UNSET E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 0 + // OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UP corresponds to the value UP of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus + OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_UP E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 1 + // OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_DOWN corresponds to the value DOWN of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus + OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 2 + // OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_TESTING corresponds to the value TESTING of OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus + OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus_TESTING E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus = 3 +) + + +// E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus is a derived int64 type which is used to represent +// the enumerated node OpenconfigInterfaces_Interfaces_Interface_State_OperStatus. An additional value named +// OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus int64 + +// IsYANGGoEnum ensures that OpenconfigInterfaces_Interfaces_Interface_State_OperStatus implements the yang.GoEnum +// interface. This ensures that OpenconfigInterfaces_Interfaces_Interface_State_OperStatus can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigInterfaces_Interfaces_Interface_State_OperStatus. +func (E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET corresponds to the value UNSET of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNSET E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 0 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UP corresponds to the value UP of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UP E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 2 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DOWN corresponds to the value DOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 3 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_TESTING corresponds to the value TESTING of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_TESTING E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 4 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNKNOWN corresponds to the value UNKNOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_UNKNOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 5 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DORMANT corresponds to the value DORMANT of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_DORMANT E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 6 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_NOT_PRESENT corresponds to the value NOT_PRESENT of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_NOT_PRESENT E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 7 + // OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_LOWER_LAYER_DOWN corresponds to the value LOWER_LAYER_DOWN of OpenconfigInterfaces_Interfaces_Interface_State_OperStatus + OpenconfigInterfaces_Interfaces_Interface_State_OperStatus_LOWER_LAYER_DOWN E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus = 8 +) + + +// E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY is a derived int64 type which is used to represent +// the enumerated node OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY. An additional value named +// OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY int64 + +// IsYANGGoEnum ensures that OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY implements the yang.GoEnum +// interface. This ensures that OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY. +func (E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_UNSET E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 0 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_C_VLAN corresponds to the value C_VLAN of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_C_VLAN E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 1 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_DOCSIS_CABLE_DEVICE corresponds to the value DOCSIS_CABLE_DEVICE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_DOCSIS_CABLE_DEVICE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 2 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_MAC_BRIDGE corresponds to the value MAC_BRIDGE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_MAC_BRIDGE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 3 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_OTHER corresponds to the value OTHER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_OTHER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 4 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_REPEATER corresponds to the value REPEATER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_REPEATER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 5 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_ROUTER corresponds to the value ROUTER of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_ROUTER E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 6 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_STATION_ONLY corresponds to the value STATION_ONLY of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_STATION_ONLY E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 7 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_S_VLAN corresponds to the value S_VLAN of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_S_VLAN E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 8 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TELEPHONE corresponds to the value TELEPHONE of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TELEPHONE E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 9 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TWO_PORT_MAC_RELAY corresponds to the value TWO_PORT_MAC_RELAY of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_TWO_PORT_MAC_RELAY E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 10 + // OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_WLAN_ACCESS_POINT corresponds to the value WLAN_ACCESS_POINT of OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY + OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY_WLAN_ACCESS_POINT E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY = 11 +) + + +// E_OpenconfigLldpTypes_LLDP_TLV is a derived int64 type which is used to represent +// the enumerated node OpenconfigLldpTypes_LLDP_TLV. An additional value named +// OpenconfigLldpTypes_LLDP_TLV_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigLldpTypes_LLDP_TLV int64 + +// IsYANGGoEnum ensures that OpenconfigLldpTypes_LLDP_TLV implements the yang.GoEnum +// interface. This ensures that OpenconfigLldpTypes_LLDP_TLV can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigLldpTypes_LLDP_TLV) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigLldpTypes_LLDP_TLV. +func (E_OpenconfigLldpTypes_LLDP_TLV) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigLldpTypes_LLDP_TLV_UNSET corresponds to the value UNSET of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_UNSET E_OpenconfigLldpTypes_LLDP_TLV = 0 + // OpenconfigLldpTypes_LLDP_TLV_CHASSIS_ID corresponds to the value CHASSIS_ID of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_CHASSIS_ID E_OpenconfigLldpTypes_LLDP_TLV = 1 + // OpenconfigLldpTypes_LLDP_TLV_MANAGEMENT_ADDRESS corresponds to the value MANAGEMENT_ADDRESS of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_MANAGEMENT_ADDRESS E_OpenconfigLldpTypes_LLDP_TLV = 2 + // OpenconfigLldpTypes_LLDP_TLV_PORT_DESCRIPTION corresponds to the value PORT_DESCRIPTION of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_PORT_DESCRIPTION E_OpenconfigLldpTypes_LLDP_TLV = 3 + // OpenconfigLldpTypes_LLDP_TLV_PORT_ID corresponds to the value PORT_ID of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_PORT_ID E_OpenconfigLldpTypes_LLDP_TLV = 4 + // OpenconfigLldpTypes_LLDP_TLV_SYSTEM_CAPABILITIES corresponds to the value SYSTEM_CAPABILITIES of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_SYSTEM_CAPABILITIES E_OpenconfigLldpTypes_LLDP_TLV = 5 + // OpenconfigLldpTypes_LLDP_TLV_SYSTEM_DESCRIPTION corresponds to the value SYSTEM_DESCRIPTION of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_SYSTEM_DESCRIPTION E_OpenconfigLldpTypes_LLDP_TLV = 6 + // OpenconfigLldpTypes_LLDP_TLV_SYSTEM_NAME corresponds to the value SYSTEM_NAME of OpenconfigLldpTypes_LLDP_TLV + OpenconfigLldpTypes_LLDP_TLV_SYSTEM_NAME E_OpenconfigLldpTypes_LLDP_TLV = 7 +) + + +// E_OpenconfigLldp_ChassisIdType is a derived int64 type which is used to represent +// the enumerated node OpenconfigLldp_ChassisIdType. An additional value named +// OpenconfigLldp_ChassisIdType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigLldp_ChassisIdType int64 + +// IsYANGGoEnum ensures that OpenconfigLldp_ChassisIdType implements the yang.GoEnum +// interface. This ensures that OpenconfigLldp_ChassisIdType can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigLldp_ChassisIdType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigLldp_ChassisIdType. +func (E_OpenconfigLldp_ChassisIdType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigLldp_ChassisIdType_UNSET corresponds to the value UNSET of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_UNSET E_OpenconfigLldp_ChassisIdType = 0 + // OpenconfigLldp_ChassisIdType_CHASSIS_COMPONENT corresponds to the value CHASSIS_COMPONENT of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_CHASSIS_COMPONENT E_OpenconfigLldp_ChassisIdType = 1 + // OpenconfigLldp_ChassisIdType_INTERFACE_ALIAS corresponds to the value INTERFACE_ALIAS of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_INTERFACE_ALIAS E_OpenconfigLldp_ChassisIdType = 2 + // OpenconfigLldp_ChassisIdType_PORT_COMPONENT corresponds to the value PORT_COMPONENT of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_PORT_COMPONENT E_OpenconfigLldp_ChassisIdType = 3 + // OpenconfigLldp_ChassisIdType_MAC_ADDRESS corresponds to the value MAC_ADDRESS of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_MAC_ADDRESS E_OpenconfigLldp_ChassisIdType = 4 + // OpenconfigLldp_ChassisIdType_NETWORK_ADDRESS corresponds to the value NETWORK_ADDRESS of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_NETWORK_ADDRESS E_OpenconfigLldp_ChassisIdType = 5 + // OpenconfigLldp_ChassisIdType_INTERFACE_NAME corresponds to the value INTERFACE_NAME of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_INTERFACE_NAME E_OpenconfigLldp_ChassisIdType = 6 + // OpenconfigLldp_ChassisIdType_LOCAL corresponds to the value LOCAL of OpenconfigLldp_ChassisIdType + OpenconfigLldp_ChassisIdType_LOCAL E_OpenconfigLldp_ChassisIdType = 7 +) + + +// E_OpenconfigLldp_PortIdType is a derived int64 type which is used to represent +// the enumerated node OpenconfigLldp_PortIdType. An additional value named +// OpenconfigLldp_PortIdType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigLldp_PortIdType int64 + +// IsYANGGoEnum ensures that OpenconfigLldp_PortIdType implements the yang.GoEnum +// interface. This ensures that OpenconfigLldp_PortIdType can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigLldp_PortIdType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigLldp_PortIdType. +func (E_OpenconfigLldp_PortIdType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigLldp_PortIdType_UNSET corresponds to the value UNSET of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_UNSET E_OpenconfigLldp_PortIdType = 0 + // OpenconfigLldp_PortIdType_INTERFACE_ALIAS corresponds to the value INTERFACE_ALIAS of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_INTERFACE_ALIAS E_OpenconfigLldp_PortIdType = 1 + // OpenconfigLldp_PortIdType_PORT_COMPONENT corresponds to the value PORT_COMPONENT of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_PORT_COMPONENT E_OpenconfigLldp_PortIdType = 2 + // OpenconfigLldp_PortIdType_MAC_ADDRESS corresponds to the value MAC_ADDRESS of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_MAC_ADDRESS E_OpenconfigLldp_PortIdType = 3 + // OpenconfigLldp_PortIdType_NETWORK_ADDRESS corresponds to the value NETWORK_ADDRESS of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_NETWORK_ADDRESS E_OpenconfigLldp_PortIdType = 4 + // OpenconfigLldp_PortIdType_INTERFACE_NAME corresponds to the value INTERFACE_NAME of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_INTERFACE_NAME E_OpenconfigLldp_PortIdType = 5 + // OpenconfigLldp_PortIdType_AGENT_CIRCUIT_ID corresponds to the value AGENT_CIRCUIT_ID of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_AGENT_CIRCUIT_ID E_OpenconfigLldp_PortIdType = 6 + // OpenconfigLldp_PortIdType_LOCAL corresponds to the value LOCAL of OpenconfigLldp_PortIdType + OpenconfigLldp_PortIdType_LOCAL E_OpenconfigLldp_PortIdType = 7 +) + + +// E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatformTypes_COMPONENT_OPER_STATUS. An additional value named +// OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS int64 + +// IsYANGGoEnum ensures that OpenconfigPlatformTypes_COMPONENT_OPER_STATUS implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatformTypes_COMPONENT_OPER_STATUS can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatformTypes_COMPONENT_OPER_STATUS. +func (E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS + OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_UNSET E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 0 + // OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_ACTIVE corresponds to the value ACTIVE of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS + OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_ACTIVE E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 1 + // OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_DISABLED corresponds to the value DISABLED of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS + OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_DISABLED E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 2 + // OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_INACTIVE corresponds to the value INACTIVE of OpenconfigPlatformTypes_COMPONENT_OPER_STATUS + OpenconfigPlatformTypes_COMPONENT_OPER_STATUS_INACTIVE E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS = 3 +) + + +// E_OpenconfigPlatformTypes_FEC_MODE_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatformTypes_FEC_MODE_TYPE. An additional value named +// OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatformTypes_FEC_MODE_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigPlatformTypes_FEC_MODE_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatformTypes_FEC_MODE_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatformTypes_FEC_MODE_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatformTypes_FEC_MODE_TYPE. +func (E_OpenconfigPlatformTypes_FEC_MODE_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_FEC_MODE_TYPE + OpenconfigPlatformTypes_FEC_MODE_TYPE_UNSET E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 0 + // OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_AUTO corresponds to the value FEC_AUTO of OpenconfigPlatformTypes_FEC_MODE_TYPE + OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_AUTO E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 1 + // OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_DISABLED corresponds to the value FEC_DISABLED of OpenconfigPlatformTypes_FEC_MODE_TYPE + OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_DISABLED E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 2 + // OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_ENABLED corresponds to the value FEC_ENABLED of OpenconfigPlatformTypes_FEC_MODE_TYPE + OpenconfigPlatformTypes_FEC_MODE_TYPE_FEC_ENABLED E_OpenconfigPlatformTypes_FEC_MODE_TYPE = 3 +) + + +// E_OpenconfigPlatformTypes_FEC_STATUS_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatformTypes_FEC_STATUS_TYPE. An additional value named +// OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatformTypes_FEC_STATUS_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigPlatformTypes_FEC_STATUS_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatformTypes_FEC_STATUS_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatformTypes_FEC_STATUS_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatformTypes_FEC_STATUS_TYPE. +func (E_OpenconfigPlatformTypes_FEC_STATUS_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_FEC_STATUS_TYPE + OpenconfigPlatformTypes_FEC_STATUS_TYPE_UNSET E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 0 + // OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_LOCKED corresponds to the value FEC_STATUS_LOCKED of OpenconfigPlatformTypes_FEC_STATUS_TYPE + OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_LOCKED E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 1 + // OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_UNLOCKED corresponds to the value FEC_STATUS_UNLOCKED of OpenconfigPlatformTypes_FEC_STATUS_TYPE + OpenconfigPlatformTypes_FEC_STATUS_TYPE_FEC_STATUS_UNLOCKED E_OpenconfigPlatformTypes_FEC_STATUS_TYPE = 2 +) + + +// E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT. An additional value named +// OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT int64 + +// IsYANGGoEnum ensures that OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT. +func (E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_UNSET E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 0 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_BACKPLANE corresponds to the value BACKPLANE of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_BACKPLANE E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 1 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CHASSIS corresponds to the value CHASSIS of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CHASSIS E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 2 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CONTROLLER_CARD corresponds to the value CONTROLLER_CARD of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CONTROLLER_CARD E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 3 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CPU corresponds to the value CPU of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_CPU E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 4 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FABRIC corresponds to the value FABRIC of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FABRIC E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 5 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FAN corresponds to the value FAN of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FAN E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 6 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FRU corresponds to the value FRU of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_FRU E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 7 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_INTEGRATED_CIRCUIT corresponds to the value INTEGRATED_CIRCUIT of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_INTEGRATED_CIRCUIT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 8 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_LINECARD corresponds to the value LINECARD of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_LINECARD E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 9 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_OPTICAL_CHANNEL corresponds to the value OPTICAL_CHANNEL of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_OPTICAL_CHANNEL E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 10 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_PORT corresponds to the value PORT of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_PORT E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 11 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_POWER_SUPPLY corresponds to the value POWER_SUPPLY of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_POWER_SUPPLY E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 12 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_SENSOR corresponds to the value SENSOR of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_SENSOR E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 13 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_STORAGE corresponds to the value STORAGE of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_STORAGE E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 14 + // OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_TRANSCEIVER corresponds to the value TRANSCEIVER of OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT_TRANSCEIVER E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT = 15 +) + + +// E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT. An additional value named +// OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT int64 + +// IsYANGGoEnum ensures that OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT. +func (E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET corresponds to the value UNSET of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_UNSET E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 0 + // OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM corresponds to the value OPERATING_SYSTEM of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 1 + // OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM_UPDATE corresponds to the value OPERATING_SYSTEM_UPDATE of OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT + OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT_OPERATING_SYSTEM_UPDATE E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT = 2 +) + + +// E_OpenconfigPlatform_Components_Component_Transceiver_State_Present is a derived int64 type which is used to represent +// the enumerated node OpenconfigPlatform_Components_Component_Transceiver_State_Present. An additional value named +// OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigPlatform_Components_Component_Transceiver_State_Present int64 + +// IsYANGGoEnum ensures that OpenconfigPlatform_Components_Component_Transceiver_State_Present implements the yang.GoEnum +// interface. This ensures that OpenconfigPlatform_Components_Component_Transceiver_State_Present can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigPlatform_Components_Component_Transceiver_State_Present) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigPlatform_Components_Component_Transceiver_State_Present. +func (E_OpenconfigPlatform_Components_Component_Transceiver_State_Present) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET corresponds to the value UNSET of OpenconfigPlatform_Components_Component_Transceiver_State_Present + OpenconfigPlatform_Components_Component_Transceiver_State_Present_UNSET E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 0 + // OpenconfigPlatform_Components_Component_Transceiver_State_Present_PRESENT corresponds to the value PRESENT of OpenconfigPlatform_Components_Component_Transceiver_State_Present + OpenconfigPlatform_Components_Component_Transceiver_State_Present_PRESENT E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 1 + // OpenconfigPlatform_Components_Component_Transceiver_State_Present_NOT_PRESENT corresponds to the value NOT_PRESENT of OpenconfigPlatform_Components_Component_Transceiver_State_Present + OpenconfigPlatform_Components_Component_Transceiver_State_Present_NOT_PRESENT E_OpenconfigPlatform_Components_Component_Transceiver_State_Present = 2 +) + + +// E_OpenconfigTerminalDevice_AdminStateType is a derived int64 type which is used to represent +// the enumerated node OpenconfigTerminalDevice_AdminStateType. An additional value named +// OpenconfigTerminalDevice_AdminStateType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTerminalDevice_AdminStateType int64 + +// IsYANGGoEnum ensures that OpenconfigTerminalDevice_AdminStateType implements the yang.GoEnum +// interface. This ensures that OpenconfigTerminalDevice_AdminStateType can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTerminalDevice_AdminStateType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTerminalDevice_AdminStateType. +func (E_OpenconfigTerminalDevice_AdminStateType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTerminalDevice_AdminStateType_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_AdminStateType + OpenconfigTerminalDevice_AdminStateType_UNSET E_OpenconfigTerminalDevice_AdminStateType = 0 + // OpenconfigTerminalDevice_AdminStateType_ENABLED corresponds to the value ENABLED of OpenconfigTerminalDevice_AdminStateType + OpenconfigTerminalDevice_AdminStateType_ENABLED E_OpenconfigTerminalDevice_AdminStateType = 1 + // OpenconfigTerminalDevice_AdminStateType_DISABLED corresponds to the value DISABLED of OpenconfigTerminalDevice_AdminStateType + OpenconfigTerminalDevice_AdminStateType_DISABLED E_OpenconfigTerminalDevice_AdminStateType = 2 + // OpenconfigTerminalDevice_AdminStateType_MAINT corresponds to the value MAINT of OpenconfigTerminalDevice_AdminStateType + OpenconfigTerminalDevice_AdminStateType_MAINT E_OpenconfigTerminalDevice_AdminStateType = 3 +) + + +// E_OpenconfigTerminalDevice_LoopbackModeType is a derived int64 type which is used to represent +// the enumerated node OpenconfigTerminalDevice_LoopbackModeType. An additional value named +// OpenconfigTerminalDevice_LoopbackModeType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTerminalDevice_LoopbackModeType int64 + +// IsYANGGoEnum ensures that OpenconfigTerminalDevice_LoopbackModeType implements the yang.GoEnum +// interface. This ensures that OpenconfigTerminalDevice_LoopbackModeType can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTerminalDevice_LoopbackModeType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTerminalDevice_LoopbackModeType. +func (E_OpenconfigTerminalDevice_LoopbackModeType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTerminalDevice_LoopbackModeType_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_LoopbackModeType + OpenconfigTerminalDevice_LoopbackModeType_UNSET E_OpenconfigTerminalDevice_LoopbackModeType = 0 + // OpenconfigTerminalDevice_LoopbackModeType_NONE corresponds to the value NONE of OpenconfigTerminalDevice_LoopbackModeType + OpenconfigTerminalDevice_LoopbackModeType_NONE E_OpenconfigTerminalDevice_LoopbackModeType = 1 + // OpenconfigTerminalDevice_LoopbackModeType_FACILITY corresponds to the value FACILITY of OpenconfigTerminalDevice_LoopbackModeType + OpenconfigTerminalDevice_LoopbackModeType_FACILITY E_OpenconfigTerminalDevice_LoopbackModeType = 2 + // OpenconfigTerminalDevice_LoopbackModeType_TERMINAL corresponds to the value TERMINAL of OpenconfigTerminalDevice_LoopbackModeType + OpenconfigTerminalDevice_LoopbackModeType_TERMINAL E_OpenconfigTerminalDevice_LoopbackModeType = 3 +) + + +// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls is a derived int64 type which is used to represent +// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls. An additional value named +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls int64 + +// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls implements the yang.GoEnum +// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 0 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_NONE corresponds to the value NONE of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_NONE E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 1 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_LASER_SHUTDOWN corresponds to the value LASER_SHUTDOWN of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_LASER_SHUTDOWN E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 2 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET corresponds to the value ETHERNET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls_ETHERNET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls = 3 +) + + +// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType is a derived int64 type which is used to represent +// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType. An additional value named +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType int64 + +// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType implements the yang.GoEnum +// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 0 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_LOGICAL_CHANNEL corresponds to the value LOGICAL_CHANNEL of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_LOGICAL_CHANNEL E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 1 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_OPTICAL_CHANNEL corresponds to the value OPTICAL_CHANNEL of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType_OPTICAL_CHANNEL E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType = 2 +) + + +// E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState is a derived int64 type which is used to represent +// the enumerated node OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState. An additional value named +// OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState int64 + +// IsYANGGoEnum ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState implements the yang.GoEnum +// interface. This ensures that OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState. +func (E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET corresponds to the value UNSET of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UNSET E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 0 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UP corresponds to the value UP of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_UP E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 1 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_DOWN corresponds to the value DOWN of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_DOWN E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 2 + // OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_TESTING corresponds to the value TESTING of OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState + OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState_TESTING E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState = 3 +) + + +// E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_ETHERNET_PMD_TYPE. An additional value named +// OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_ETHERNET_PMD_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_ETHERNET_PMD_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_ETHERNET_PMD_TYPE. +func (E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_UNSET E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 0 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CLR4 corresponds to the value ETH_100GBASE_CLR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CLR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 1 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CR4 corresponds to the value ETH_100GBASE_CR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 2 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CWDM4 corresponds to the value ETH_100GBASE_CWDM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_CWDM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 3 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4 corresponds to the value ETH_100GBASE_ER4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_ER4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 4 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_LR4 corresponds to the value ETH_100GBASE_LR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_LR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 5 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_PSM4 corresponds to the value ETH_100GBASE_PSM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_PSM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 6 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR10 corresponds to the value ETH_100GBASE_SR10 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR10 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 7 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR4 corresponds to the value ETH_100GBASE_SR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100GBASE_SR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 8 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_ACC corresponds to the value ETH_100G_ACC of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_ACC E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 9 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_AOC corresponds to the value ETH_100G_AOC of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_100G_AOC E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 10 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ER corresponds to the value ETH_10GBASE_ER of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ER E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 11 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LR corresponds to the value ETH_10GBASE_LR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 12 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LRM corresponds to the value ETH_10GBASE_LRM of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_LRM E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 13 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_SR corresponds to the value ETH_10GBASE_SR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_SR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 14 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ZR corresponds to the value ETH_10GBASE_ZR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_10GBASE_ZR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 15 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_CR4 corresponds to the value ETH_40GBASE_CR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_CR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 16 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_ER4 corresponds to the value ETH_40GBASE_ER4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_ER4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 17 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_LR4 corresponds to the value ETH_40GBASE_LR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_LR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 18 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_PSM4 corresponds to the value ETH_40GBASE_PSM4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_PSM4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 19 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_SR4 corresponds to the value ETH_40GBASE_SR4 of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_40GBASE_SR4 E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 20 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_LR corresponds to the value ETH_4X10GBASE_LR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_LR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 21 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_SR corresponds to the value ETH_4X10GBASE_SR of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_4X10GBASE_SR E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 22 + // OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_UNDEFINED corresponds to the value ETH_UNDEFINED of OpenconfigTransportTypes_ETHERNET_PMD_TYPE + OpenconfigTransportTypes_ETHERNET_PMD_TYPE_ETH_UNDEFINED E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE = 23 +) + + +// E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE. An additional value named +// OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE. +func (E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE + OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_UNSET E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 0 + // OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_LC_CONNECTOR corresponds to the value LC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE + OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_LC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 1 + // OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_MPO_CONNECTOR corresponds to the value MPO_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE + OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_MPO_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 2 + // OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_SC_CONNECTOR corresponds to the value SC_CONNECTOR of OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE + OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE_SC_CONNECTOR E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE = 3 +) + + +// E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL. An additional value named +// OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL. +func (E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_UNSET E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 0 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_AMP corresponds to the value AMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_AMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 1 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_BMP corresponds to the value BMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_BMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 2 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_CBR corresponds to the value CBR of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_CBR E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 3 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_F corresponds to the value GFP_F of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_F E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 4 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_T corresponds to the value GFP_T of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GFP_T E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 5 + // OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GMP corresponds to the value GMP of OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL + OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL_GMP E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL = 6 +) + + +// E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE. An additional value named +// OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE. +func (E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE + OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_UNSET E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 0 + // OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_ETHERNET corresponds to the value PROT_ETHERNET of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE + OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_ETHERNET E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 1 + // OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_OTN corresponds to the value PROT_OTN of OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE + OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE_PROT_OTN E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE = 2 +) + + +// E_OpenconfigTransportTypes_OTN_APPLICATION_CODE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_OTN_APPLICATION_CODE. An additional value named +// OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_OTN_APPLICATION_CODE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_OTN_APPLICATION_CODE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_OTN_APPLICATION_CODE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_OTN_APPLICATION_CODE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_OTN_APPLICATION_CODE. +func (E_OpenconfigTransportTypes_OTN_APPLICATION_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_OTN_APPLICATION_CODE + OpenconfigTransportTypes_OTN_APPLICATION_CODE_UNSET E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 0 + // OpenconfigTransportTypes_OTN_APPLICATION_CODE_OTN_UNDEFINED corresponds to the value OTN_UNDEFINED of OpenconfigTransportTypes_OTN_APPLICATION_CODE + OpenconfigTransportTypes_OTN_APPLICATION_CODE_OTN_UNDEFINED E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 1 + // OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D1 corresponds to the value P1L1_2D1 of OpenconfigTransportTypes_OTN_APPLICATION_CODE + OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D1 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 2 + // OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D2 corresponds to the value P1L1_2D2 of OpenconfigTransportTypes_OTN_APPLICATION_CODE + OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1L1_2D2 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 3 + // OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1S1_2D2 corresponds to the value P1S1_2D2 of OpenconfigTransportTypes_OTN_APPLICATION_CODE + OpenconfigTransportTypes_OTN_APPLICATION_CODE_P1S1_2D2 E_OpenconfigTransportTypes_OTN_APPLICATION_CODE = 4 +) + + +// E_OpenconfigTransportTypes_SONET_APPLICATION_CODE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_SONET_APPLICATION_CODE. An additional value named +// OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_SONET_APPLICATION_CODE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_SONET_APPLICATION_CODE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_SONET_APPLICATION_CODE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_SONET_APPLICATION_CODE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_SONET_APPLICATION_CODE. +func (E_OpenconfigTransportTypes_SONET_APPLICATION_CODE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_SONET_APPLICATION_CODE + OpenconfigTransportTypes_SONET_APPLICATION_CODE_UNSET E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 0 + // OpenconfigTransportTypes_SONET_APPLICATION_CODE_SONET_UNDEFINED corresponds to the value SONET_UNDEFINED of OpenconfigTransportTypes_SONET_APPLICATION_CODE + OpenconfigTransportTypes_SONET_APPLICATION_CODE_SONET_UNDEFINED E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 1 + // OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R2 corresponds to the value VSR2000_3R2 of OpenconfigTransportTypes_SONET_APPLICATION_CODE + OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R2 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 2 + // OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R3 corresponds to the value VSR2000_3R3 of OpenconfigTransportTypes_SONET_APPLICATION_CODE + OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R3 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 3 + // OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R5 corresponds to the value VSR2000_3R5 of OpenconfigTransportTypes_SONET_APPLICATION_CODE + OpenconfigTransportTypes_SONET_APPLICATION_CODE_VSR2000_3R5 E_OpenconfigTransportTypes_SONET_APPLICATION_CODE = 4 +) + + +// E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE. An additional value named +// OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE. +func (E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_UNSET E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 0 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP corresponds to the value CFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 1 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2 corresponds to the value CFP2 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 2 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2_ACO corresponds to the value CFP2_ACO of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP2_ACO E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 3 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP4 corresponds to the value CFP4 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CFP4 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 4 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CPAK corresponds to the value CPAK of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_CPAK E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 5 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_NON_PLUGGABLE corresponds to the value NON_PLUGGABLE of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_NON_PLUGGABLE E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 6 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OTHER corresponds to the value OTHER of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_OTHER E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 7 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP corresponds to the value QSFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 8 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28 corresponds to the value QSFP28 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP28 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 9 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP_PLUS corresponds to the value QSFP_PLUS of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_QSFP_PLUS E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 10 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP corresponds to the value SFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 11 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_PLUS corresponds to the value SFP_PLUS of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_SFP_PLUS E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 12 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_X2 corresponds to the value X2 of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_X2 E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 13 + // OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_XFP corresponds to the value XFP of OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE + OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE_XFP E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE = 14 +) + + +// E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE. An additional value named +// OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE. +func (E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_UNSET E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 0 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100GE corresponds to the value PROT_100GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 1 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100G_MLG corresponds to the value PROT_100G_MLG of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_100G_MLG E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 2 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_LAN corresponds to the value PROT_10GE_LAN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_LAN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 3 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_WAN corresponds to the value PROT_10GE_WAN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_10GE_WAN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 4 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_1GE corresponds to the value PROT_1GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_1GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 5 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_40GE corresponds to the value PROT_40GE of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_40GE E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 6 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC192 corresponds to the value PROT_OC192 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC192 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 7 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC48 corresponds to the value PROT_OC48 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC48 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 8 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC768 corresponds to the value PROT_OC768 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OC768 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 9 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2 corresponds to the value PROT_ODU2 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 10 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2E corresponds to the value PROT_ODU2E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU2E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 11 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU3 corresponds to the value PROT_ODU3 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU3 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 12 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU4 corresponds to the value PROT_ODU4 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODU4 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 13 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUCN corresponds to the value PROT_ODUCN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_ODUCN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 14 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU1E corresponds to the value PROT_OTU1E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU1E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 15 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2 corresponds to the value PROT_OTU2 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 16 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2E corresponds to the value PROT_OTU2E of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU2E E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 17 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU3 corresponds to the value PROT_OTU3 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU3 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 18 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU4 corresponds to the value PROT_OTU4 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTU4 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 19 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTUCN corresponds to the value PROT_OTUCN of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_OTUCN E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 20 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM16 corresponds to the value PROT_STM16 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM16 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 21 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM256 corresponds to the value PROT_STM256 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM256 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 22 + // OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM64 corresponds to the value PROT_STM64 of OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE + OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE_PROT_STM64 E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE = 23 +) + + +// E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE. An additional value named +// OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE. +func (E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_UNSET E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 0 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1000G corresponds to the value TRIB_RATE_1000G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1000G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 1 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_100G corresponds to the value TRIB_RATE_100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 2 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_10G corresponds to the value TRIB_RATE_10G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_10G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 3 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1100G corresponds to the value TRIB_RATE_1100G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1100G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 4 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_150G corresponds to the value TRIB_RATE_150G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_150G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 5 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1G corresponds to the value TRIB_RATE_1G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_1G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 6 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2_5G corresponds to the value TRIB_RATE_2_5G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_2_5G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 7 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_200G corresponds to the value TRIB_RATE_200G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_200G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 8 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_250G corresponds to the value TRIB_RATE_250G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_250G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 9 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_300G corresponds to the value TRIB_RATE_300G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_300G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 10 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_400G corresponds to the value TRIB_RATE_400G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_400G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 11 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_40G corresponds to the value TRIB_RATE_40G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_40G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 12 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_500G corresponds to the value TRIB_RATE_500G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_500G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 13 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_600G corresponds to the value TRIB_RATE_600G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_600G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 14 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_700G corresponds to the value TRIB_RATE_700G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_700G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 15 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_800G corresponds to the value TRIB_RATE_800G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_800G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 16 + // OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_900G corresponds to the value TRIB_RATE_900G of OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE + OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE_TRIB_RATE_900G E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE = 17 +) + + +// E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY is a derived int64 type which is used to represent +// the enumerated node OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY. An additional value named +// OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET is added to the enumeration which is used as +// the nil value, indicating that the enumeration was not explicitly set by +// the program importing the generated structures. +type E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY int64 + +// IsYANGGoEnum ensures that OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY implements the yang.GoEnum +// interface. This ensures that OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY can be identified as a +// mapped type for a YANG enumeration. +func (E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY) IsYANGGoEnum() {} + +// ΛMap returns the value lookup map associated with OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY. +func (E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; } + +const ( + // OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET corresponds to the value UNSET of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY + OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_UNSET E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 0 + // OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_1_25G corresponds to the value TRIB_SLOT_1_25G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY + OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_1_25G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 1 + // OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_2_5G corresponds to the value TRIB_SLOT_2_5G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY + OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_2_5G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 2 + // OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_5G corresponds to the value TRIB_SLOT_5G of OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY + OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY_TRIB_SLOT_5G E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY = 3 +) + + +// ΛEnum is a map, keyed by the name of the type defined for each enum in the +// generated Go code, which provides a mapping between the constant int64 value +// of each value of the enumeration, and the string that is used to represent it +// in the YANG schema. The map is named ΛEnum in order to avoid clash with any +// valid YANG identifier. +var ΛEnum = map[string]map[int64]ygot.EnumDefinition{ + "E_IETFInterfaces_InterfaceType": { + }, + "E_IETFInterfaces_InterfacesState_Interface_AdminStatus": { + 2: {Name: "up"}, + 3: {Name: "down"}, + 4: {Name: "testing"}, + }, + "E_IETFInterfaces_InterfacesState_Interface_OperStatus": { + 2: {Name: "up"}, + 3: {Name: "down"}, + 4: {Name: "testing"}, + 5: {Name: "unknown"}, + 6: {Name: "dormant"}, + 7: {Name: "not-present"}, + 8: {Name: "lower-layer-down"}, + }, + "E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY": { + 1: {Name: "CRITICAL", DefiningModule: "openconfig-alarm-types"}, + 2: {Name: "MAJOR", DefiningModule: "openconfig-alarm-types"}, + 3: {Name: "MINOR", DefiningModule: "openconfig-alarm-types"}, + 4: {Name: "UNKNOWN", DefiningModule: "openconfig-alarm-types"}, + 5: {Name: "WARNING", DefiningModule: "openconfig-alarm-types"}, + }, + "E_OpenconfigIfEthernet_ETHERNET_SPEED": { + 1: {Name: "SPEED_100GB", DefiningModule: "openconfig-if-ethernet"}, + 2: {Name: "SPEED_100MB", DefiningModule: "openconfig-if-ethernet"}, + 3: {Name: "SPEED_10GB", DefiningModule: "openconfig-if-ethernet"}, + 4: {Name: "SPEED_10MB", DefiningModule: "openconfig-if-ethernet"}, + 5: {Name: "SPEED_1GB", DefiningModule: "openconfig-if-ethernet"}, + 6: {Name: "SPEED_2500MB", DefiningModule: "openconfig-if-ethernet"}, + 7: {Name: "SPEED_25GB", DefiningModule: "openconfig-if-ethernet"}, + 8: {Name: "SPEED_40GB", DefiningModule: "openconfig-if-ethernet"}, + 9: {Name: "SPEED_50GB", DefiningModule: "openconfig-if-ethernet"}, + 10: {Name: "SPEED_5GB", DefiningModule: "openconfig-if-ethernet"}, + 11: {Name: "SPEED_UNKNOWN", DefiningModule: "openconfig-if-ethernet"}, + }, + "E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode": { + 1: {Name: "FULL"}, + 2: {Name: "HALF"}, + }, + "E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode": { + 1: {Name: "FULL"}, + 2: {Name: "HALF"}, + }, + "E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus": { + 1: {Name: "UP"}, + 2: {Name: "DOWN"}, + 3: {Name: "TESTING"}, + }, + "E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus": { + 2: {Name: "UP"}, + 3: {Name: "DOWN"}, + 4: {Name: "TESTING"}, + 5: {Name: "UNKNOWN"}, + 6: {Name: "DORMANT"}, + 7: {Name: "NOT_PRESENT"}, + 8: {Name: "LOWER_LAYER_DOWN"}, + }, + "E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY": { + 1: {Name: "C_VLAN", DefiningModule: "openconfig-lldp-types"}, + 2: {Name: "DOCSIS_CABLE_DEVICE", DefiningModule: "openconfig-lldp-types"}, + 3: {Name: "MAC_BRIDGE", DefiningModule: "openconfig-lldp-types"}, + 4: {Name: "OTHER", DefiningModule: "openconfig-lldp-types"}, + 5: {Name: "REPEATER", DefiningModule: "openconfig-lldp-types"}, + 6: {Name: "ROUTER", DefiningModule: "openconfig-lldp-types"}, + 7: {Name: "STATION_ONLY", DefiningModule: "openconfig-lldp-types"}, + 8: {Name: "S_VLAN", DefiningModule: "openconfig-lldp-types"}, + 9: {Name: "TELEPHONE", DefiningModule: "openconfig-lldp-types"}, + 10: {Name: "TWO_PORT_MAC_RELAY", DefiningModule: "openconfig-lldp-types"}, + 11: {Name: "WLAN_ACCESS_POINT", DefiningModule: "openconfig-lldp-types"}, + }, + "E_OpenconfigLldpTypes_LLDP_TLV": { + 1: {Name: "CHASSIS_ID", DefiningModule: "openconfig-lldp-types"}, + 2: {Name: "MANAGEMENT_ADDRESS", DefiningModule: "openconfig-lldp-types"}, + 3: {Name: "PORT_DESCRIPTION", DefiningModule: "openconfig-lldp-types"}, + 4: {Name: "PORT_ID", DefiningModule: "openconfig-lldp-types"}, + 5: {Name: "SYSTEM_CAPABILITIES", DefiningModule: "openconfig-lldp-types"}, + 6: {Name: "SYSTEM_DESCRIPTION", DefiningModule: "openconfig-lldp-types"}, + 7: {Name: "SYSTEM_NAME", DefiningModule: "openconfig-lldp-types"}, + }, + "E_OpenconfigLldp_ChassisIdType": { + 1: {Name: "CHASSIS_COMPONENT"}, + 2: {Name: "INTERFACE_ALIAS"}, + 3: {Name: "PORT_COMPONENT"}, + 4: {Name: "MAC_ADDRESS"}, + 5: {Name: "NETWORK_ADDRESS"}, + 6: {Name: "INTERFACE_NAME"}, + 7: {Name: "LOCAL"}, + }, + "E_OpenconfigLldp_PortIdType": { + 1: {Name: "INTERFACE_ALIAS"}, + 2: {Name: "PORT_COMPONENT"}, + 3: {Name: "MAC_ADDRESS"}, + 4: {Name: "NETWORK_ADDRESS"}, + 5: {Name: "INTERFACE_NAME"}, + 6: {Name: "AGENT_CIRCUIT_ID"}, + 7: {Name: "LOCAL"}, + }, + "E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS": { + 1: {Name: "ACTIVE", DefiningModule: "openconfig-platform-types"}, + 2: {Name: "DISABLED", DefiningModule: "openconfig-platform-types"}, + 3: {Name: "INACTIVE", DefiningModule: "openconfig-platform-types"}, + }, + "E_OpenconfigPlatformTypes_FEC_MODE_TYPE": { + 1: {Name: "FEC_AUTO", DefiningModule: "openconfig-platform-types"}, + 2: {Name: "FEC_DISABLED", DefiningModule: "openconfig-platform-types"}, + 3: {Name: "FEC_ENABLED", DefiningModule: "openconfig-platform-types"}, + }, + "E_OpenconfigPlatformTypes_FEC_STATUS_TYPE": { + 1: {Name: "FEC_STATUS_LOCKED", DefiningModule: "openconfig-platform-types"}, + 2: {Name: "FEC_STATUS_UNLOCKED", DefiningModule: "openconfig-platform-types"}, + }, + "E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT": { + 1: {Name: "BACKPLANE", DefiningModule: "openconfig-platform-types"}, + 2: {Name: "CHASSIS", DefiningModule: "openconfig-platform-types"}, + 3: {Name: "CONTROLLER_CARD", DefiningModule: "openconfig-platform-types"}, + 4: {Name: "CPU", DefiningModule: "openconfig-platform-types"}, + 5: {Name: "FABRIC", DefiningModule: "openconfig-platform-types"}, + 6: {Name: "FAN", DefiningModule: "openconfig-platform-types"}, + 7: {Name: "FRU", DefiningModule: "openconfig-platform-types"}, + 8: {Name: "INTEGRATED_CIRCUIT", DefiningModule: "openconfig-platform-types"}, + 9: {Name: "LINECARD", DefiningModule: "openconfig-platform-types"}, + 10: {Name: "OPTICAL_CHANNEL", DefiningModule: "openconfig-transport-types"}, + 11: {Name: "PORT", DefiningModule: "openconfig-platform-types"}, + 12: {Name: "POWER_SUPPLY", DefiningModule: "openconfig-platform-types"}, + 13: {Name: "SENSOR", DefiningModule: "openconfig-platform-types"}, + 14: {Name: "STORAGE", DefiningModule: "openconfig-platform-types"}, + 15: {Name: "TRANSCEIVER", DefiningModule: "openconfig-platform-types"}, + }, + "E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT": { + 1: {Name: "OPERATING_SYSTEM", DefiningModule: "openconfig-platform-types"}, + 2: {Name: "OPERATING_SYSTEM_UPDATE", DefiningModule: "openconfig-platform-types"}, + }, + "E_OpenconfigPlatform_Components_Component_Transceiver_State_Present": { + 1: {Name: "PRESENT"}, + 2: {Name: "NOT_PRESENT"}, + }, + "E_OpenconfigTerminalDevice_AdminStateType": { + 1: {Name: "ENABLED"}, + 2: {Name: "DISABLED"}, + 3: {Name: "MAINT"}, + }, + "E_OpenconfigTerminalDevice_LoopbackModeType": { + 1: {Name: "NONE"}, + 2: {Name: "FACILITY"}, + 3: {Name: "TERMINAL"}, + }, + "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls": { + 1: {Name: "NONE"}, + 2: {Name: "LASER_SHUTDOWN"}, + 3: {Name: "ETHERNET"}, + }, + "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType": { + 1: {Name: "LOGICAL_CHANNEL"}, + 2: {Name: "OPTICAL_CHANNEL"}, + }, + "E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState": { + 1: {Name: "UP"}, + 2: {Name: "DOWN"}, + 3: {Name: "TESTING"}, + }, + "E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE": { + 1: {Name: "ETH_100GBASE_CLR4", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "ETH_100GBASE_CR4", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "ETH_100GBASE_CWDM4", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "ETH_100GBASE_ER4", DefiningModule: "openconfig-transport-types"}, + 5: {Name: "ETH_100GBASE_LR4", DefiningModule: "openconfig-transport-types"}, + 6: {Name: "ETH_100GBASE_PSM4", DefiningModule: "openconfig-transport-types"}, + 7: {Name: "ETH_100GBASE_SR10", DefiningModule: "openconfig-transport-types"}, + 8: {Name: "ETH_100GBASE_SR4", DefiningModule: "openconfig-transport-types"}, + 9: {Name: "ETH_100G_ACC", DefiningModule: "openconfig-transport-types"}, + 10: {Name: "ETH_100G_AOC", DefiningModule: "openconfig-transport-types"}, + 11: {Name: "ETH_10GBASE_ER", DefiningModule: "openconfig-transport-types"}, + 12: {Name: "ETH_10GBASE_LR", DefiningModule: "openconfig-transport-types"}, + 13: {Name: "ETH_10GBASE_LRM", DefiningModule: "openconfig-transport-types"}, + 14: {Name: "ETH_10GBASE_SR", DefiningModule: "openconfig-transport-types"}, + 15: {Name: "ETH_10GBASE_ZR", DefiningModule: "openconfig-transport-types"}, + 16: {Name: "ETH_40GBASE_CR4", DefiningModule: "openconfig-transport-types"}, + 17: {Name: "ETH_40GBASE_ER4", DefiningModule: "openconfig-transport-types"}, + 18: {Name: "ETH_40GBASE_LR4", DefiningModule: "openconfig-transport-types"}, + 19: {Name: "ETH_40GBASE_PSM4", DefiningModule: "openconfig-transport-types"}, + 20: {Name: "ETH_40GBASE_SR4", DefiningModule: "openconfig-transport-types"}, + 21: {Name: "ETH_4X10GBASE_LR", DefiningModule: "openconfig-transport-types"}, + 22: {Name: "ETH_4X10GBASE_SR", DefiningModule: "openconfig-transport-types"}, + 23: {Name: "ETH_UNDEFINED", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE": { + 1: {Name: "LC_CONNECTOR", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "MPO_CONNECTOR", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "SC_CONNECTOR", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL": { + 1: {Name: "AMP", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "BMP", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "CBR", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "GFP_F", DefiningModule: "openconfig-transport-types"}, + 5: {Name: "GFP_T", DefiningModule: "openconfig-transport-types"}, + 6: {Name: "GMP", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE": { + 1: {Name: "PROT_ETHERNET", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "PROT_OTN", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_OTN_APPLICATION_CODE": { + 1: {Name: "OTN_UNDEFINED", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "P1L1_2D1", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "P1L1_2D2", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "P1S1_2D2", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_SONET_APPLICATION_CODE": { + 1: {Name: "SONET_UNDEFINED", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "VSR2000_3R2", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "VSR2000_3R3", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "VSR2000_3R5", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE": { + 1: {Name: "CFP", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "CFP2", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "CFP2_ACO", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "CFP4", DefiningModule: "openconfig-transport-types"}, + 5: {Name: "CPAK", DefiningModule: "openconfig-transport-types"}, + 6: {Name: "NON_PLUGGABLE", DefiningModule: "openconfig-transport-types"}, + 7: {Name: "OTHER", DefiningModule: "openconfig-transport-types"}, + 8: {Name: "QSFP", DefiningModule: "openconfig-transport-types"}, + 9: {Name: "QSFP28", DefiningModule: "openconfig-transport-types"}, + 10: {Name: "QSFP_PLUS", DefiningModule: "openconfig-transport-types"}, + 11: {Name: "SFP", DefiningModule: "openconfig-transport-types"}, + 12: {Name: "SFP_PLUS", DefiningModule: "openconfig-transport-types"}, + 13: {Name: "X2", DefiningModule: "openconfig-transport-types"}, + 14: {Name: "XFP", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE": { + 1: {Name: "PROT_100GE", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "PROT_100G_MLG", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "PROT_10GE_LAN", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "PROT_10GE_WAN", DefiningModule: "openconfig-transport-types"}, + 5: {Name: "PROT_1GE", DefiningModule: "openconfig-transport-types"}, + 6: {Name: "PROT_40GE", DefiningModule: "openconfig-transport-types"}, + 7: {Name: "PROT_OC192", DefiningModule: "openconfig-transport-types"}, + 8: {Name: "PROT_OC48", DefiningModule: "openconfig-transport-types"}, + 9: {Name: "PROT_OC768", DefiningModule: "openconfig-transport-types"}, + 10: {Name: "PROT_ODU2", DefiningModule: "openconfig-transport-types"}, + 11: {Name: "PROT_ODU2E", DefiningModule: "openconfig-transport-types"}, + 12: {Name: "PROT_ODU3", DefiningModule: "openconfig-transport-types"}, + 13: {Name: "PROT_ODU4", DefiningModule: "openconfig-transport-types"}, + 14: {Name: "PROT_ODUCN", DefiningModule: "openconfig-transport-types"}, + 15: {Name: "PROT_OTU1E", DefiningModule: "openconfig-transport-types"}, + 16: {Name: "PROT_OTU2", DefiningModule: "openconfig-transport-types"}, + 17: {Name: "PROT_OTU2E", DefiningModule: "openconfig-transport-types"}, + 18: {Name: "PROT_OTU3", DefiningModule: "openconfig-transport-types"}, + 19: {Name: "PROT_OTU4", DefiningModule: "openconfig-transport-types"}, + 20: {Name: "PROT_OTUCN", DefiningModule: "openconfig-transport-types"}, + 21: {Name: "PROT_STM16", DefiningModule: "openconfig-transport-types"}, + 22: {Name: "PROT_STM256", DefiningModule: "openconfig-transport-types"}, + 23: {Name: "PROT_STM64", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE": { + 1: {Name: "TRIB_RATE_1000G", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "TRIB_RATE_100G", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "TRIB_RATE_10G", DefiningModule: "openconfig-transport-types"}, + 4: {Name: "TRIB_RATE_1100G", DefiningModule: "openconfig-transport-types"}, + 5: {Name: "TRIB_RATE_150G", DefiningModule: "openconfig-transport-types"}, + 6: {Name: "TRIB_RATE_1G", DefiningModule: "openconfig-transport-types"}, + 7: {Name: "TRIB_RATE_2.5G", DefiningModule: "openconfig-transport-types"}, + 8: {Name: "TRIB_RATE_200G", DefiningModule: "openconfig-transport-types"}, + 9: {Name: "TRIB_RATE_250G", DefiningModule: "openconfig-transport-types"}, + 10: {Name: "TRIB_RATE_300G", DefiningModule: "openconfig-transport-types"}, + 11: {Name: "TRIB_RATE_400G", DefiningModule: "openconfig-transport-types"}, + 12: {Name: "TRIB_RATE_40G", DefiningModule: "openconfig-transport-types"}, + 13: {Name: "TRIB_RATE_500G", DefiningModule: "openconfig-transport-types"}, + 14: {Name: "TRIB_RATE_600G", DefiningModule: "openconfig-transport-types"}, + 15: {Name: "TRIB_RATE_700G", DefiningModule: "openconfig-transport-types"}, + 16: {Name: "TRIB_RATE_800G", DefiningModule: "openconfig-transport-types"}, + 17: {Name: "TRIB_RATE_900G", DefiningModule: "openconfig-transport-types"}, + }, + "E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY": { + 1: {Name: "TRIB_SLOT_1.25G", DefiningModule: "openconfig-transport-types"}, + 2: {Name: "TRIB_SLOT_2.5G", DefiningModule: "openconfig-transport-types"}, + 3: {Name: "TRIB_SLOT_5G", DefiningModule: "openconfig-transport-types"}, + }, +} + + +var ( + // ySchema is a byte slice contain a gzip compressed representation of the + // YANG schema from which the Go code was generated. When uncompressed the + // contents of the byte slice is a JSON document containing an object, keyed + // on the name of the generated struct, and containing the JSON marshalled + // contents of a goyang yang.Entry struct, which defines the schema for the + // fields within the struct. + ySchema = []byte{ + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x73, 0xdb, 0xb8, + 0x96, 0xf7, 0xfb, 0xde, 0x9f, 0x42, 0xa5, 0x9a, 0x17, 0xdd, 0x67, 0x87, 0xb1, 0x24, 0xcb, 0xb7, + 0x54, 0x9d, 0x9a, 0x92, 0x6d, 0x25, 0xf1, 0x69, 0x5f, 0xf4, 0x58, 0xca, 0xee, 0xe9, 0xdd, 0xf6, + 0xa8, 0x68, 0x12, 0xb2, 0xf9, 0x84, 0x22, 0x35, 0x24, 0xe4, 0x8e, 0x77, 0x4f, 0xbe, 0xfb, 0x29, + 0xdd, 0xa8, 0xbb, 0x44, 0x00, 0x0b, 0x14, 0x49, 0xfd, 0xbb, 0x76, 0xed, 0x38, 0x8e, 0x08, 0x91, + 0x00, 0xd6, 0x5a, 0xbf, 0xf5, 0x07, 0xb8, 0xf0, 0xf7, 0x41, 0xa1, 0x50, 0x28, 0x14, 0xef, 0xcc, + 0x2e, 0x2b, 0x7e, 0x2a, 0x14, 0x6d, 0xf6, 0xe6, 0x58, 0xac, 0xf8, 0x61, 0xf4, 0xdb, 0xdf, 0x1c, + 0xcf, 0x2e, 0x7e, 0x2a, 0x94, 0xc7, 0x7f, 0xbd, 0xf4, 0xbd, 0x8e, 0xf3, 0x52, 0xfc, 0x54, 0x28, + 0x8d, 0x7f, 0x71, 0xe5, 0x04, 0xc5, 0x4f, 0x85, 0x51, 0x13, 0xc3, 0x5f, 0x58, 0x7e, 0xb7, 0xe7, + 0x7b, 0xcc, 0xe3, 0xe1, 0xdc, 0xef, 0xe7, 0xbe, 0x62, 0xe6, 0x33, 0x1f, 0xe6, 0x3f, 0x31, 0xff, + 0x75, 0xd1, 0xaf, 0x17, 0xbf, 0x36, 0xfa, 0x87, 0x46, 0xc0, 0x3a, 0xce, 0x8f, 0xa5, 0x6f, 0x9a, + 0xfb, 0x36, 0xdf, 0x32, 0x7a, 0xae, 0xc9, 0x3b, 0x7e, 0xd0, 0x5d, 0xf8, 0xba, 0xe1, 0xc7, 0x9a, + 0x7e, 0x3f, 0xb0, 0xd8, 0xca, 0x26, 0x46, 0xb7, 0xc4, 0xde, 0xff, 0xf2, 0x83, 0xc1, 0x5d, 0x15, + 0x7b, 0xa3, 0x6f, 0xfb, 0xb0, 0xfa, 0x83, 0x5f, 0xcd, 0xb0, 0x16, 0xbc, 0xf4, 0xbb, 0xcc, 0xe3, + 0xc5, 0x4f, 0x05, 0x1e, 0xf4, 0xd9, 0x9a, 0x0f, 0xce, 0x7c, 0x6a, 0xee, 0xe6, 0x96, 0x3e, 0xfd, + 0x73, 0xee, 0x37, 0x3f, 0x17, 0x9e, 0x7d, 0xb1, 0xeb, 0x97, 0x87, 0x60, 0xfd, 0x43, 0x2d, 0x8d, + 0xc4, 0xba, 0x87, 0x5a, 0x3d, 0x20, 0x5b, 0x07, 0x26, 0xce, 0x00, 0x09, 0x0e, 0x54, 0xdc, 0x01, + 0x13, 0x1e, 0x38, 0xe1, 0x01, 0x14, 0x1f, 0xc8, 0xd5, 0x03, 0xba, 0x66, 0x60, 0xb7, 0x0e, 0x70, + 0xf4, 0x81, 0x67, 0xd3, 0xfa, 0xde, 0x73, 0x4d, 0x2f, 0x46, 0x67, 0x4c, 0xfa, 0x78, 0x7a, 0xc9, + 0x96, 0x67, 0xdb, 0x3c, 0xf0, 0xb1, 0x27, 0x80, 0xc8, 0x44, 0x90, 0x9c, 0x10, 0xa2, 0x13, 0x43, + 0x7a, 0x82, 0x48, 0x4f, 0x14, 0xf9, 0x09, 0xb3, 0x79, 0xe2, 0x6c, 0x99, 0x40, 0xb1, 0x27, 0xd2, + 0x8c, 0xe7, 0x18, 0x8f, 0x66, 0xcc, 0x1e, 0x9c, 0xba, 0x91, 0xe1, 0x75, 0x31, 0x7b, 0x21, 0xde, + 0xd4, 0x12, 0x9e, 0x62, 0x32, 0x53, 0x4d, 0x71, 0xca, 0xc9, 0x4e, 0x3d, 0xe5, 0x29, 0xa8, 0x3c, + 0x15, 0xd5, 0xa7, 0x64, 0xbc, 0xa9, 0x19, 0x73, 0x8a, 0x4e, 0x6f, 0xc7, 0xf3, 0x7c, 0x6e, 0x72, + 0xc7, 0xf7, 0xc4, 0xc6, 0x2f, 0xb4, 0x5e, 0x59, 0xd7, 0xec, 0x99, 0xfc, 0x75, 0xf0, 0x20, 0x87, + 0x7e, 0x8f, 0x79, 0xa3, 0x49, 0x19, 0x3d, 0xd1, 0xe1, 0x94, 0x3a, 0xa6, 0x3f, 0x1e, 0x46, 0xfe, + 0xf0, 0x50, 0x68, 0x0e, 0x8f, 0xbe, 0x93, 0x07, 0x7d, 0x8b, 0x7b, 0xe3, 0x99, 0x73, 0x1f, 0x7d, + 0x65, 0x63, 0xfc, 0x8d, 0xed, 0xcb, 0xe8, 0x1b, 0xa7, 0x3f, 0xb6, 0x2f, 0x26, 0xdf, 0xd8, 0x1e, + 0x4f, 0xec, 0x03, 0x9a, 0x5e, 0x8e, 0xd1, 0xc3, 0xc5, 0x90, 0x9b, 0x9c, 0x89, 0x9b, 0xf7, 0xe8, + 0x32, 0xcd, 0xd6, 0x5d, 0x81, 0x75, 0xc3, 0xba, 0xb5, 0x59, 0xb7, 0xc8, 0x14, 0x26, 0x31, 0xee, + 0xe6, 0xf0, 0x0b, 0xa9, 0x6c, 0x5b, 0x29, 0xfc, 0x0b, 0xf6, 0xba, 0x7a, 0x6f, 0x17, 0x63, 0xb9, + 0x22, 0xa5, 0xfe, 0xdd, 0xdc, 0xb3, 0xeb, 0xfb, 0x6b, 0x43, 0x5f, 0x15, 0xad, 0x57, 0x33, 0x0c, + 0x9d, 0x30, 0x3e, 0x4c, 0x4f, 0x2e, 0x00, 0x4a, 0x03, 0xa5, 0x81, 0xd2, 0x08, 0xb6, 0xfb, 0x1d, + 0x6c, 0xc7, 0xde, 0x30, 0x31, 0x90, 0xbe, 0x1c, 0x7d, 0x1f, 0x30, 0x1a, 0x18, 0x0d, 0xcb, 0x4e, + 0xc4, 0xb2, 0x13, 0x82, 0xe8, 0x89, 0x61, 0xef, 0x21, 0x42, 0xc7, 0x23, 0x4a, 0xf5, 0xbe, 0xd5, + 0x82, 0xcf, 0xf1, 0x88, 0x47, 0x8c, 0x74, 0x00, 0xcf, 0xfb, 0x08, 0xcf, 0xe3, 0x59, 0x2d, 0x18, + 0x5f, 0x87, 0x57, 0x89, 0x85, 0xd7, 0x12, 0xc0, 0x19, 0xe1, 0x75, 0xf1, 0x76, 0x5a, 0xef, 0x3d, + 0x26, 0x37, 0x72, 0x21, 0x0f, 0x1c, 0x4f, 0x08, 0x7d, 0x27, 0xee, 0xed, 0x6c, 0xbf, 0xc2, 0x5c, + 0xdc, 0x14, 0x41, 0x36, 0xca, 0xc5, 0x48, 0x09, 0x24, 0x83, 0x5c, 0xaf, 0x2f, 0x10, 0xe1, 0x7a, + 0x7d, 0x84, 0x37, 0x84, 0x37, 0x68, 0x43, 0x08, 0x71, 0xfb, 0x9e, 0x41, 0xf6, 0xfa, 0xc9, 0xe9, + 0x42, 0xbd, 0x3e, 0x34, 0x21, 0x68, 0x42, 0xb0, 0x68, 0xed, 0x16, 0x9d, 0x94, 0x1e, 0xd4, 0xeb, + 0xef, 0xa5, 0x16, 0xb4, 0x95, 0x1e, 0xd5, 0xfa, 0x54, 0x07, 0x1e, 0x77, 0xcc, 0xe7, 0xc0, 0xb1, + 0xe2, 0x13, 0xf2, 0xf8, 0xf3, 0x80, 0x64, 0x40, 0x32, 0x20, 0x19, 0x21, 0x75, 0xbf, 0x43, 0xea, + 0xc8, 0x19, 0x26, 0xc6, 0xc9, 0x9f, 0x87, 0x5f, 0x07, 0x54, 0x06, 0x2a, 0xc3, 0xae, 0x93, 0xb0, + 0xeb, 0x84, 0x68, 0x79, 0x6c, 0xd6, 0x7b, 0x08, 0xcc, 0xb1, 0x60, 0x52, 0xb9, 0x67, 0xf5, 0x60, + 0xb3, 0x27, 0xc2, 0xcc, 0x1e, 0x80, 0x19, 0xc0, 0x0c, 0x60, 0x46, 0x60, 0xdd, 0xfb, 0xc0, 0xea, + 0x25, 0x48, 0xcb, 0x1e, 0x50, 0x19, 0xa8, 0x0c, 0x8b, 0xd6, 0x6e, 0xd1, 0x89, 0x71, 0xb2, 0xb7, + 0x9f, 0x90, 0xec, 0xe9, 0x24, 0x64, 0x4f, 0x07, 0x1e, 0x3b, 0x1e, 0x67, 0x2f, 0x81, 0xc9, 0x99, + 0x6d, 0x58, 0x4e, 0x60, 0xf5, 0x1d, 0x1e, 0x9f, 0x96, 0x57, 0x5c, 0x0b, 0x78, 0x06, 0x3c, 0x03, + 0x9e, 0x11, 0x6a, 0xf7, 0x3b, 0xd4, 0x2e, 0x3b, 0xc6, 0xc4, 0x58, 0xfa, 0x3a, 0xfa, 0xea, 0xcb, + 0xd1, 0x37, 0x83, 0xac, 0x41, 0xd6, 0x30, 0xf7, 0xa4, 0xcd, 0x3d, 0x21, 0xd0, 0x5e, 0xb6, 0xf6, + 0x3d, 0xc4, 0x6e, 0x61, 0x0c, 0xa5, 0xec, 0x70, 0x1d, 0x4c, 0x1e, 0xeb, 0x15, 0x0d, 0x91, 0x57, + 0x33, 0x62, 0xbe, 0x92, 0x01, 0xee, 0xce, 0x02, 0x77, 0xc7, 0x7e, 0x85, 0x22, 0xea, 0x79, 0x97, + 0x99, 0x9d, 0x80, 0x75, 0xe2, 0xf4, 0xfa, 0x24, 0xac, 0x9e, 0xc6, 0xf8, 0x6c, 0x63, 0x6c, 0xa9, + 0x1f, 0x3f, 0x8e, 0xe9, 0xe6, 0x70, 0x38, 0x15, 0x35, 0x18, 0x84, 0xdf, 0xe3, 0x8e, 0x65, 0xba, + 0x86, 0xf5, 0x6a, 0x7a, 0x1e, 0x73, 0xe3, 0xdb, 0xc6, 0xe2, 0x85, 0xd9, 0x48, 0x4f, 0xfd, 0x1e, + 0x37, 0x38, 0xcb, 0xa9, 0x99, 0x44, 0x0f, 0x87, 0xf4, 0x34, 0x45, 0xe9, 0xa9, 0xc0, 0x94, 0xcb, + 0x1f, 0xaf, 0xc6, 0x9f, 0x92, 0x7a, 0x78, 0x35, 0xee, 0x54, 0x8d, 0x2e, 0xe8, 0x04, 0xec, 0x7f, + 0xfa, 0xcc, 0xb3, 0xde, 0xc5, 0x3b, 0x3f, 0x5a, 0xe9, 0x8e, 0x9a, 0x10, 0xec, 0x3b, 0xb1, 0xb7, + 0x3b, 0xa5, 0x27, 0xb4, 0xca, 0xc4, 0x26, 0x9a, 0xe0, 0xaa, 0x13, 0x9d, 0x6c, 0xc2, 0x93, 0x4d, + 0x7c, 0x3a, 0x03, 0x10, 0x33, 0x04, 0x41, 0x83, 0x10, 0x47, 0x9d, 0xed, 0xd3, 0xdc, 0xe0, 0x83, + 0xb6, 0x24, 0x06, 0x7f, 0x3c, 0xdf, 0xcf, 0x24, 0x2e, 0xfd, 0xe6, 0x39, 0xc3, 0x52, 0xcd, 0xc5, + 0xdb, 0xaf, 0xff, 0x96, 0xf9, 0xea, 0x07, 0xd3, 0x7b, 0x19, 0x3c, 0xc5, 0x9f, 0x52, 0x83, 0x2c, + 0x37, 0x59, 0x87, 0x5f, 0x7c, 0xeb, 0x78, 0xd2, 0xb3, 0x5d, 0xd1, 0x51, 0x2c, 0x35, 0xf3, 0x4f, + 0xd3, 0xed, 0x33, 0x82, 0x76, 0x3e, 0x07, 0xa6, 0x35, 0xc8, 0x45, 0xaf, 0x9c, 0x97, 0xd1, 0xa8, + 0x94, 0xa4, 0xdb, 0xfb, 0xf9, 0x41, 0xa1, 0x6b, 0xcd, 0x1f, 0xa9, 0xeb, 0xda, 0xf2, 0x59, 0xb5, + 0x7a, 0x72, 0x5a, 0xad, 0x96, 0x4e, 0x8f, 0x4e, 0x4b, 0xe7, 0xc7, 0xc7, 0xe5, 0x93, 0xf2, 0x71, + 0x8a, 0x7a, 0xfb, 0x20, 0x99, 0xab, 0x9e, 0x0e, 0xf4, 0xb4, 0x2f, 0x30, 0x5b, 0x8a, 0xae, 0xe3, + 0x31, 0xa3, 0xe7, 0x07, 0x5c, 0x3e, 0xb0, 0x4f, 0x9b, 0x40, 0x60, 0x47, 0x60, 0xcf, 0x6d, 0x60, + 0x8f, 0xaf, 0x69, 0xa8, 0x68, 0x1c, 0x6b, 0x35, 0x8f, 0xc3, 0x19, 0xc1, 0xe7, 0xd3, 0x8c, 0x2a, + 0xb9, 0xf2, 0xd7, 0x73, 0xbf, 0xdd, 0xae, 0x91, 0x24, 0xe3, 0x6a, 0xfc, 0x1e, 0x0b, 0x86, 0xe2, + 0xac, 0xe9, 0x1a, 0x5d, 0xdf, 0x66, 0xf2, 0x1e, 0x67, 0xa9, 0x25, 0x38, 0x1e, 0x38, 0x9e, 0xdc, + 0x3a, 0x9e, 0xbe, 0xe3, 0xf1, 0xf2, 0x89, 0x82, 0xdf, 0x39, 0x41, 0x26, 0x80, 0x4c, 0x20, 0xa5, + 0x99, 0xc0, 0xc9, 0xf1, 0xf1, 0x11, 0xd0, 0x7f, 0x27, 0xf1, 0x98, 0x9b, 0xc1, 0x0b, 0xe3, 0x86, + 0xdf, 0xe7, 0xbd, 0x3e, 0x37, 0x7a, 0xfe, 0x5f, 0x2c, 0x90, 0x0f, 0xc9, 0xab, 0x1a, 0x43, 0x54, + 0x46, 0x54, 0xce, 0x6d, 0x54, 0xb6, 0x99, 0xe5, 0x74, 0x4d, 0xf7, 0xa4, 0xaa, 0x92, 0x10, 0x54, + 0x24, 0xae, 0x5d, 0xf2, 0x76, 0x95, 0x7d, 0x0d, 0xef, 0x15, 0x84, 0x77, 0x5d, 0xe1, 0xfd, 0x28, + 0x87, 0x5d, 0x9b, 0xf5, 0xd0, 0x9e, 0xe9, 0x1d, 0x6b, 0x0b, 0xfb, 0x22, 0x12, 0xdb, 0x9d, 0x7a, + 0x3f, 0xfa, 0xde, 0xcb, 0xd1, 0xd7, 0x62, 0x6b, 0xea, 0x2e, 0xb6, 0xa6, 0x62, 0xa9, 0x3f, 0x4b, + 0x4b, 0xfd, 0xd6, 0x6b, 0xe0, 0x77, 0x4d, 0xee, 0x58, 0x86, 0xed, 0x84, 0x3d, 0x16, 0x84, 0xa2, + 0x3e, 0xa2, 0x30, 0x7f, 0xaa, 0xce, 0x8a, 0xd6, 0xe4, 0x12, 0x83, 0x32, 0x12, 0x03, 0x24, 0x06, + 0xba, 0x13, 0x03, 0x51, 0x73, 0x89, 0x2e, 0x34, 0xdf, 0x5e, 0xe4, 0x87, 0x6b, 0x32, 0x6b, 0x06, + 0x8d, 0x48, 0xf6, 0xaf, 0x9a, 0x2e, 0x23, 0x6d, 0x2c, 0x14, 0x46, 0xb3, 0xd6, 0x78, 0xde, 0x7b, + 0x2c, 0x2c, 0x2a, 0x10, 0xb1, 0xa2, 0x15, 0x91, 0x5b, 0x13, 0xb9, 0x55, 0x6d, 0xb4, 0xae, 0x61, + 0xef, 0x25, 0x8d, 0xcb, 0x92, 0xb3, 0x47, 0x3a, 0x1f, 0x27, 0xcd, 0xcb, 0x29, 0xf2, 0x73, 0xd2, + 0x3c, 0x9d, 0x28, 0x5f, 0x57, 0xcf, 0xdb, 0x49, 0xf3, 0x77, 0xe2, 0x3c, 0x9e, 0x3a, 0xe9, 0xd4, + 0x91, 0x7c, 0x12, 0xe4, 0xf7, 0xa4, 0x79, 0x3e, 0x71, 0xbe, 0x9f, 0xa9, 0x21, 0x38, 0xd8, 0xcd, + 0xd5, 0x4f, 0x09, 0xe9, 0x0f, 0x12, 0x53, 0xac, 0xe8, 0x78, 0x21, 0x37, 0x3d, 0xae, 0x0e, 0x30, + 0x93, 0x86, 0x00, 0x31, 0x80, 0x18, 0x40, 0x0c, 0x20, 0x06, 0x10, 0x03, 0x88, 0x01, 0xc4, 0x00, + 0x62, 0x92, 0x81, 0x18, 0xce, 0x82, 0x37, 0xd3, 0xa5, 0xa0, 0x98, 0x71, 0x4b, 0xc0, 0x98, 0x41, + 0x20, 0x06, 0xc2, 0xc8, 0x22, 0xcc, 0x9e, 0xe2, 0x4b, 0xc8, 0x4d, 0x6e, 0x28, 0x1a, 0x51, 0x41, + 0xed, 0x55, 0xa8, 0xa8, 0x89, 0xe8, 0x95, 0x28, 0xcf, 0xf4, 0xfc, 0x90, 0x59, 0xbe, 0x67, 0x2b, + 0xcd, 0xe5, 0x5c, 0x43, 0x4c, 0x09, 0x10, 0xb3, 0x6b, 0x88, 0xa1, 0x1e, 0x02, 0xfa, 0x57, 0xad, + 0xc0, 0x35, 0xc9, 0x72, 0x4d, 0x57, 0x61, 0x96, 0x45, 0x2e, 0x79, 0xd0, 0x08, 0x68, 0x06, 0xa2, + 0x0c, 0x44, 0x19, 0x88, 0x32, 0x10, 0x65, 0xc0, 0x33, 0x10, 0x65, 0x00, 0x2f, 0x09, 0xc1, 0x8b, + 0xc1, 0x9d, 0x2e, 0x23, 0x21, 0x98, 0x51, 0x4b, 0xc0, 0x18, 0x88, 0x32, 0x10, 0x65, 0x84, 0xe7, + 0xcc, 0xc0, 0x76, 0xb8, 0x63, 0x7d, 0x0f, 0x49, 0x00, 0x06, 0x92, 0x0c, 0x24, 0x19, 0x48, 0x32, + 0x90, 0x64, 0xf6, 0x94, 0x6a, 0x14, 0x0c, 0x7d, 0x0a, 0x34, 0x8e, 0x07, 0x96, 0x81, 0x24, 0x03, + 0x49, 0x06, 0x92, 0x0c, 0x24, 0x19, 0xf0, 0x0c, 0x24, 0x19, 0xc0, 0x4b, 0x52, 0xf0, 0x42, 0x25, + 0xc9, 0x4c, 0x5a, 0x02, 0xc6, 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x92, 0x0c, 0x10, 0x06, + 0x92, 0x0c, 0xa8, 0x46, 0x95, 0x6a, 0xb4, 0xbe, 0xe2, 0x2d, 0x59, 0xfa, 0x24, 0xba, 0x9e, 0xaa, + 0x04, 0xca, 0xb0, 0xc4, 0xc7, 0x21, 0x41, 0x81, 0x84, 0x02, 0x59, 0x79, 0x94, 0xe1, 0x59, 0x5e, + 0xed, 0xcb, 0xc9, 0x2d, 0x5d, 0x4d, 0xef, 0x28, 0x05, 0xf5, 0xea, 0x70, 0x06, 0x85, 0x9c, 0xb0, + 0x86, 0x12, 0x14, 0x1b, 0x74, 0x33, 0x9c, 0x41, 0x41, 0x8c, 0x94, 0x38, 0x83, 0x02, 0x95, 0x67, + 0xb5, 0x20, 0x20, 0xce, 0xa0, 0xd0, 0x71, 0x55, 0x1a, 0x0a, 0xd1, 0xbe, 0x04, 0x7e, 0xbf, 0x67, + 0x38, 0xb6, 0x7c, 0x5c, 0x8f, 0x5a, 0x40, 0x58, 0x47, 0x58, 0xcf, 0x75, 0x21, 0xf8, 0xa3, 0x8a, + 0x42, 0x38, 0x3f, 0x45, 0x38, 0x46, 0x38, 0x4e, 0x69, 0x38, 0xae, 0x56, 0xce, 0xab, 0xe7, 0x27, + 0xa7, 0x95, 0x73, 0x04, 0xe1, 0x9d, 0x04, 0x61, 0xc7, 0x23, 0xa8, 0x02, 0x3f, 0xdb, 0xc8, 0x7e, + 0x14, 0x79, 0xe4, 0x81, 0xe9, 0x85, 0x16, 0x73, 0xde, 0x84, 0x9f, 0x78, 0x3f, 0xa2, 0xf1, 0x6c, + 0xff, 0xa0, 0xd4, 0x23, 0x4a, 0x3d, 0xae, 0x32, 0x21, 0x2c, 0x9b, 0xca, 0x1a, 0x17, 0x76, 0x7d, + 0xa9, 0xe2, 0x0b, 0x76, 0x7d, 0x69, 0x01, 0xef, 0xc5, 0x6e, 0xc6, 0xae, 0xaf, 0xc4, 0x01, 0x7d, + 0x71, 0x08, 0xb0, 0xeb, 0x4b, 0xfb, 0xd5, 0x28, 0xf1, 0x08, 0x78, 0x01, 0xbc, 0x00, 0x5e, 0x00, + 0x2f, 0x80, 0x17, 0xc0, 0x0b, 0xe0, 0x05, 0xf0, 0x42, 0x06, 0x2f, 0x28, 0xed, 0x08, 0x7c, 0x01, + 0xbe, 0xa0, 0xb4, 0xe3, 0x6c, 0x13, 0xd8, 0xb4, 0xae, 0xdf, 0x63, 0x01, 0x62, 0xd2, 0x3b, 0x04, + 0xd8, 0xb4, 0x9e, 0x75, 0xae, 0x41, 0x69, 0x47, 0xd0, 0x0c, 0x68, 0x06, 0x62, 0x0c, 0xc4, 0x18, + 0x88, 0x31, 0x10, 0x63, 0x00, 0x2d, 0x59, 0x81, 0x16, 0x94, 0x74, 0x04, 0xbe, 0x00, 0x5f, 0x50, + 0x3f, 0x00, 0x52, 0x0c, 0xa4, 0x18, 0x48, 0x31, 0x90, 0x62, 0xf2, 0x40, 0x35, 0x28, 0xe9, 0x08, + 0x96, 0x01, 0xcb, 0x40, 0x8a, 0x81, 0x14, 0x03, 0x29, 0x06, 0x52, 0x0c, 0xa0, 0x25, 0x23, 0xd0, + 0x82, 0x52, 0x8e, 0xc0, 0x17, 0xe0, 0x0b, 0xa4, 0x18, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0x40, + 0x8a, 0x49, 0x1b, 0xd5, 0xec, 0x51, 0x29, 0x47, 0xf9, 0xea, 0x07, 0x05, 0xe2, 0x0a, 0x8e, 0xd7, + 0x83, 0x3b, 0x69, 0x0c, 0x6f, 0x24, 0x05, 0xa5, 0x25, 0x5c, 0x33, 0x64, 0x81, 0xf1, 0xec, 0x98, + 0xa1, 0x61, 0xf5, 0x83, 0x80, 0x49, 0xbc, 0x85, 0x16, 0xc5, 0xd9, 0x15, 0x6d, 0xa1, 0xd0, 0x84, + 0x7e, 0x1e, 0x45, 0xa1, 0x09, 0x05, 0x2f, 0x85, 0x42, 0x13, 0x48, 0xea, 0x90, 0xd4, 0x65, 0x30, + 0xa9, 0x83, 0x26, 0x9d, 0xb9, 0x84, 0x0e, 0x9a, 0xf4, 0xce, 0x13, 0x3a, 0x68, 0xd2, 0xf9, 0xc9, + 0xde, 0x50, 0x68, 0x02, 0xf0, 0x02, 0x78, 0x01, 0xbc, 0x00, 0x5e, 0x00, 0x2f, 0x80, 0x17, 0xc0, + 0x4b, 0xfe, 0xe1, 0x05, 0x85, 0x26, 0x80, 0x2f, 0xc0, 0x17, 0x14, 0x9a, 0x98, 0x6d, 0x02, 0x4b, + 0xea, 0xfa, 0x3d, 0x16, 0x20, 0x26, 0xbd, 0x43, 0x80, 0x25, 0xf5, 0xac, 0x73, 0x0d, 0x0a, 0x4d, + 0x80, 0x66, 0x40, 0x33, 0x10, 0x63, 0x20, 0xc6, 0x40, 0x8c, 0x81, 0x18, 0x03, 0x68, 0xc9, 0x0a, + 0xb4, 0xa0, 0xd0, 0x04, 0xf0, 0x05, 0xf8, 0x82, 0xb7, 0x1b, 0x20, 0xc5, 0x40, 0x8a, 0x81, 0x14, + 0x03, 0x29, 0x26, 0x0f, 0x54, 0x83, 0x42, 0x13, 0x60, 0x19, 0xb0, 0x0c, 0xa4, 0x18, 0x48, 0x31, + 0x90, 0x62, 0x20, 0xc5, 0x00, 0x5a, 0x32, 0x02, 0x2d, 0x28, 0x34, 0x01, 0x7c, 0x01, 0xbe, 0x40, + 0x8a, 0x81, 0x14, 0x03, 0x29, 0x06, 0x52, 0x0c, 0xa4, 0x98, 0xb4, 0x51, 0xcd, 0x1e, 0x15, 0x9a, + 0x50, 0x2e, 0x82, 0x50, 0x20, 0xae, 0x37, 0x71, 0x33, 0xb8, 0xa1, 0x0b, 0xc7, 0x0c, 0x2f, 0xc7, + 0xb7, 0x93, 0x86, 0xaa, 0x13, 0x8e, 0xc7, 0x8c, 0x9e, 0x1f, 0xa8, 0x14, 0x9b, 0x88, 0x9a, 0x90, + 0xab, 0x31, 0x51, 0xca, 0x58, 0x8d, 0x09, 0xbf, 0xc7, 0x0d, 0xce, 0x82, 0x2e, 0x0a, 0x4c, 0xac, + 0xe0, 0xcd, 0xa8, 0x73, 0x52, 0xe6, 0x9a, 0xa4, 0xd1, 0x72, 0x3a, 0xcd, 0x99, 0xd9, 0x09, 0x58, + 0x47, 0x66, 0xd4, 0x27, 0x3a, 0xd8, 0xa9, 0xc4, 0xb5, 0x8d, 0xc8, 0x1b, 0x5a, 0x91, 0x17, 0xfc, + 0x34, 0xe3, 0x05, 0x57, 0xfe, 0x7a, 0xee, 0xb7, 0x43, 0xdf, 0x95, 0x02, 0x57, 0xe3, 0xf7, 0x58, + 0x30, 0x0c, 0x0e, 0xa6, 0x6b, 0x74, 0x7d, 0x9b, 0xc9, 0x7b, 0x9c, 0xa5, 0x96, 0xe0, 0x78, 0xe0, + 0x78, 0x72, 0xeb, 0x78, 0xfa, 0x8e, 0xc7, 0xcb, 0x27, 0x0a, 0x7e, 0xe7, 0x44, 0xe2, 0x52, 0xb5, + 0x34, 0x53, 0x21, 0x83, 0xa7, 0x48, 0x2b, 0x89, 0x72, 0x19, 0xaa, 0x34, 0x92, 0x32, 0x51, 0x51, + 0x48, 0x1b, 0x49, 0xd2, 0x45, 0xea, 0xae, 0x3d, 0x39, 0x3e, 0x3e, 0x3a, 0x4e, 0x51, 0xf7, 0x26, + 0x94, 0x87, 0x3d, 0xa5, 0x21, 0x1e, 0xf7, 0xf9, 0xb4, 0x12, 0x9f, 0x7c, 0x2c, 0x9e, 0x6d, 0x05, + 0x45, 0xe6, 0x10, 0x8a, 0x51, 0x64, 0x6e, 0xed, 0xdc, 0x41, 0x91, 0x39, 0x2c, 0xe8, 0x28, 0x1b, + 0x17, 0xf6, 0xa3, 0xa8, 0xb2, 0x0b, 0xf6, 0xa3, 0x68, 0xa1, 0xee, 0xc5, 0x6e, 0xc6, 0x7e, 0x94, + 0xc4, 0xe9, 0x7c, 0x71, 0x08, 0xb0, 0x1f, 0x45, 0xfb, 0xd5, 0x28, 0x32, 0x07, 0x78, 0x01, 0xbc, + 0x00, 0x5e, 0x00, 0x2f, 0x80, 0x17, 0xc0, 0x0b, 0xe0, 0x05, 0xf0, 0x42, 0x06, 0x2f, 0x28, 0x32, + 0x07, 0x7c, 0x01, 0xbe, 0xa0, 0xc8, 0xdc, 0x6c, 0x13, 0xd8, 0x4e, 0xab, 0xdf, 0x63, 0x01, 0x62, + 0xd2, 0x3b, 0x04, 0xd8, 0x4e, 0x9b, 0x75, 0xae, 0x41, 0x91, 0x39, 0xd0, 0x0c, 0x68, 0x06, 0x62, + 0x0c, 0xc4, 0x18, 0x88, 0x31, 0x10, 0x63, 0x00, 0x2d, 0x59, 0x81, 0x16, 0x14, 0x99, 0x03, 0xbe, + 0x00, 0x5f, 0xf0, 0x66, 0x33, 0xa4, 0x18, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0xe4, 0x81, 0x6a, + 0x50, 0x64, 0x0e, 0x2c, 0x03, 0x96, 0x81, 0x14, 0x03, 0x29, 0x06, 0x52, 0x0c, 0xa4, 0x18, 0x40, + 0x4b, 0x46, 0xa0, 0x05, 0x45, 0xe6, 0x80, 0x2f, 0xc0, 0x17, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, + 0x40, 0x8a, 0x81, 0x14, 0x93, 0x36, 0xaa, 0xd9, 0xa3, 0x22, 0x73, 0x0a, 0xe5, 0x0f, 0x0a, 0xc4, + 0xe5, 0xe5, 0xee, 0x87, 0xb7, 0xd2, 0x18, 0xde, 0x49, 0x0a, 0xca, 0x4b, 0xf4, 0x7c, 0xd7, 0x0c, + 0x9c, 0x7f, 0x0f, 0x47, 0xca, 0xb0, 0x59, 0x8f, 0x79, 0x36, 0xf3, 0xb8, 0xe1, 0xfa, 0x61, 0x28, + 0x5f, 0x6d, 0x62, 0x53, 0xa3, 0xfb, 0x51, 0x7c, 0x02, 0x45, 0xa0, 0x36, 0x80, 0x68, 0x5a, 0x8b, + 0x40, 0xa1, 0xec, 0x04, 0x52, 0x3c, 0xa4, 0x78, 0x19, 0x4c, 0xf1, 0xa0, 0x50, 0x67, 0x2e, 0xbd, + 0x83, 0x42, 0xbd, 0xf3, 0xf4, 0x0e, 0x0a, 0x75, 0x7e, 0x72, 0x39, 0x94, 0x9d, 0x00, 0xbc, 0x00, + 0x5e, 0x00, 0x2f, 0x80, 0x17, 0xc0, 0x0b, 0xe0, 0x05, 0xf0, 0x92, 0x7f, 0x78, 0x41, 0xd9, 0x09, + 0xe0, 0x0b, 0xf0, 0x05, 0x65, 0x27, 0x66, 0x9b, 0xc0, 0x02, 0xbb, 0x7e, 0x8f, 0x05, 0x88, 0x49, + 0xef, 0x10, 0x60, 0x81, 0x3d, 0xeb, 0x5c, 0x83, 0xb2, 0x13, 0xa0, 0x19, 0xd0, 0x0c, 0xc4, 0x18, + 0x88, 0x31, 0x10, 0x63, 0x20, 0xc6, 0x00, 0x5a, 0xb2, 0x02, 0x2d, 0x28, 0x3b, 0x01, 0x7c, 0x01, + 0xbe, 0xe0, 0x5d, 0x07, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0x40, 0x8a, 0xc9, 0x03, 0xd5, 0xa0, + 0xec, 0x04, 0x58, 0x06, 0x2c, 0x03, 0x29, 0x06, 0x52, 0x0c, 0xa4, 0x18, 0x48, 0x31, 0x80, 0x96, + 0x8c, 0x40, 0x0b, 0xca, 0x4e, 0x00, 0x5f, 0x80, 0x2f, 0x90, 0x62, 0x20, 0xc5, 0x40, 0x8a, 0x81, + 0x14, 0x03, 0x29, 0x26, 0x6d, 0x54, 0xb3, 0x47, 0x65, 0x27, 0xe8, 0xea, 0x20, 0x14, 0x88, 0xab, + 0x50, 0x34, 0x66, 0xee, 0xec, 0x6a, 0x72, 0x63, 0x37, 0x83, 0xfb, 0x4a, 0x5b, 0x4d, 0x8a, 0xae, + 0x6f, 0x33, 0xc3, 0x76, 0xc2, 0x1e, 0x0b, 0x42, 0x99, 0x61, 0x5d, 0x5d, 0x94, 0x62, 0xb1, 0x55, + 0x54, 0xa5, 0xd0, 0xcc, 0xaf, 0xa8, 0x4a, 0x21, 0xeb, 0xd2, 0x50, 0x95, 0x22, 0x1d, 0x19, 0xe0, + 0x70, 0x7e, 0x20, 0x0b, 0x54, 0xb1, 0x2e, 0x08, 0xd9, 0xaa, 0x6c, 0x0c, 0x21, 0x3b, 0x91, 0x2c, + 0x10, 0x42, 0xf6, 0xce, 0xb3, 0x40, 0x08, 0xd9, 0xf9, 0x49, 0xf9, 0x50, 0x9d, 0x02, 0x10, 0x03, + 0x88, 0x01, 0xc4, 0x00, 0x62, 0x00, 0x31, 0x80, 0x18, 0x40, 0xcc, 0xfe, 0x40, 0x0c, 0xaa, 0x54, + 0x68, 0xc1, 0x18, 0x20, 0x8c, 0x2c, 0xc2, 0xa0, 0x4a, 0x05, 0xaa, 0x54, 0x64, 0x09, 0x62, 0xb0, + 0x1e, 0xbf, 0x73, 0x88, 0xc1, 0x7a, 0x3c, 0xb8, 0x66, 0xbe, 0x9b, 0x51, 0xa5, 0x02, 0xa2, 0x0c, + 0x44, 0x19, 0x88, 0x32, 0x10, 0x65, 0x20, 0xca, 0x40, 0x94, 0x81, 0x28, 0x93, 0x35, 0x78, 0x41, + 0xb5, 0x0a, 0x88, 0x32, 0x10, 0x65, 0xf0, 0x8a, 0x04, 0x24, 0x19, 0x48, 0x32, 0x90, 0x64, 0x20, + 0xc9, 0xe4, 0x81, 0x6a, 0x50, 0xad, 0x02, 0x92, 0x0c, 0x24, 0x19, 0x48, 0x32, 0x90, 0x64, 0x20, + 0xc9, 0x40, 0x92, 0x01, 0xbc, 0x64, 0x0c, 0x5e, 0x50, 0xb5, 0x02, 0x92, 0x0c, 0x24, 0x19, 0x48, + 0x32, 0x90, 0x64, 0x20, 0xc9, 0x40, 0x92, 0x81, 0x24, 0x93, 0x36, 0xaa, 0xd9, 0xd7, 0xaa, 0x15, + 0x6a, 0x85, 0x12, 0x0a, 0x1a, 0xcb, 0x56, 0xdc, 0xfa, 0x36, 0xbb, 0x9a, 0xde, 0x58, 0x0a, 0xea, + 0x56, 0x8c, 0xa2, 0x94, 0xe1, 0x07, 0x36, 0x0b, 0x0c, 0x3d, 0x45, 0x2c, 0xe2, 0x7f, 0x05, 0x2a, + 0x5a, 0x68, 0x66, 0x5b, 0x54, 0xb4, 0x90, 0x75, 0x77, 0xa8, 0x68, 0x01, 0x91, 0x3b, 0xfb, 0x19, + 0x22, 0x44, 0x6e, 0x88, 0xdc, 0xd9, 0xc9, 0x10, 0x21, 0x72, 0xef, 0x3c, 0x43, 0x84, 0xc8, 0x9d, + 0x9f, 0x74, 0x10, 0x15, 0x2d, 0x00, 0x31, 0x80, 0x18, 0x40, 0x0c, 0x20, 0x06, 0x10, 0x03, 0x88, + 0x01, 0xc4, 0xec, 0x0f, 0xc4, 0xa0, 0xa2, 0x85, 0x16, 0x8c, 0x01, 0xc2, 0xc8, 0x22, 0x0c, 0x2a, + 0x5a, 0xa0, 0xa2, 0x45, 0x96, 0x20, 0x06, 0x6b, 0xf5, 0x3b, 0x87, 0x18, 0xac, 0xd5, 0x83, 0x6b, + 0xe6, 0xbb, 0x19, 0x15, 0x2d, 0x20, 0xca, 0x40, 0x94, 0x81, 0x28, 0x03, 0x51, 0x06, 0xa2, 0x0c, + 0x44, 0x19, 0x88, 0x32, 0x59, 0x83, 0x17, 0x54, 0xb4, 0x80, 0x28, 0x03, 0x51, 0x06, 0xaf, 0x4f, + 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x92, 0x4c, 0x1e, 0xa8, 0x06, 0x15, 0x2d, 0x20, 0xc9, + 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x92, 0x0c, 0x24, 0x19, 0xc0, 0x4b, 0xc6, 0xe0, 0x05, + 0x15, 0x2d, 0x20, 0xc9, 0x40, 0x92, 0x81, 0x24, 0x03, 0x49, 0x06, 0x92, 0x0c, 0x24, 0x19, 0x48, + 0x32, 0x69, 0xa3, 0x9a, 0x3d, 0xaa, 0x68, 0xa1, 0xab, 0x6a, 0x42, 0x81, 0xb8, 0xbc, 0x45, 0x73, + 0x78, 0x9f, 0xf7, 0x83, 0xdb, 0x4c, 0x77, 0xa5, 0x0b, 0x6e, 0x06, 0x2f, 0x8c, 0x1b, 0x7e, 0x9f, + 0xf7, 0xfa, 0xdc, 0xe8, 0xf9, 0x7f, 0xb1, 0x40, 0xbe, 0xa6, 0xc5, 0xaa, 0xc6, 0xe4, 0xaa, 0x57, + 0x94, 0x50, 0xbd, 0x22, 0x71, 0x7e, 0xdd, 0xbb, 0xea, 0x15, 0xd2, 0x68, 0x4a, 0xa2, 0xa8, 0xa9, + 0x28, 0x69, 0x24, 0x0a, 0x9a, 0x22, 0x76, 0x2a, 0x10, 0x3d, 0x05, 0x66, 0x12, 0x29, 0x64, 0x54, + 0x58, 0x49, 0x09, 0x2e, 0x0a, 0x18, 0x49, 0x82, 0x8f, 0x44, 0xca, 0x57, 0x2a, 0xbb, 0x36, 0x21, + 0x26, 0x7b, 0xd2, 0x15, 0xda, 0x0f, 0x08, 0x27, 0x90, 0x2c, 0xdb, 0xd1, 0x32, 0x5d, 0x51, 0xa4, + 0x2e, 0x17, 0x19, 0xa1, 0xc5, 0x8b, 0x45, 0xdb, 0xbb, 0x7b, 0xf3, 0x27, 0xb6, 0x0c, 0x84, 0xe8, + 0x00, 0x50, 0x75, 0x7c, 0x8c, 0x2e, 0x27, 0xe9, 0xea, 0xcd, 0x9d, 0xbc, 0xbe, 0xeb, 0x36, 0x74, + 0x5b, 0xb1, 0xe7, 0x07, 0xdb, 0x2b, 0x2f, 0x44, 0x01, 0x7a, 0xf8, 0xe9, 0x2d, 0x83, 0x10, 0xaf, + 0x60, 0x5a, 0x6c, 0xc4, 0x14, 0x41, 0xca, 0x59, 0x84, 0x9c, 0x8c, 0x60, 0x9c, 0xc1, 0x11, 0x44, + 0x46, 0x69, 0x44, 0x94, 0x46, 0xc2, 0x45, 0x04, 0x8c, 0x1e, 0x4e, 0xb3, 0x41, 0xc5, 0x2d, 0x48, + 0x56, 0x7c, 0x0e, 0x98, 0xf9, 0xdd, 0xef, 0xf3, 0x61, 0xde, 0x18, 0xbf, 0x23, 0x27, 0xe3, 0x35, + 0x7f, 0x79, 0xcc, 0x3e, 0x11, 0xab, 0xcc, 0x27, 0x9c, 0xd3, 0xc8, 0xe4, 0x32, 0x73, 0x13, 0x70, + 0xbb, 0xad, 0x50, 0xe4, 0x2d, 0xca, 0xf9, 0x8a, 0x72, 0x9e, 0xb2, 0x34, 0x39, 0x07, 0x0f, 0xbe, + 0xa3, 0x10, 0x2c, 0x5a, 0x41, 0xaf, 0x68, 0x4d, 0x66, 0x85, 0x64, 0x8e, 0x3e, 0xbe, 0x7e, 0x3f, + 0x8a, 0x4a, 0x0a, 0x4e, 0xe9, 0xfd, 0x49, 0xc9, 0xc5, 0xa6, 0x7c, 0x32, 0xe9, 0xb8, 0x74, 0x31, + 0xc9, 0x31, 0xd5, 0x18, 0x61, 0x8f, 0x31, 0x5b, 0x7d, 0x9d, 0x76, 0xbe, 0x39, 0x2c, 0xd6, 0x2a, + 0x18, 0x12, 0x95, 0x41, 0x91, 0x1b, 0x16, 0xb9, 0x81, 0xd1, 0x1a, 0x9a, 0x62, 0xba, 0xba, 0xf3, + 0xa5, 0x5a, 0xc7, 0x66, 0x1e, 0x77, 0xf8, 0x7b, 0xc0, 0x3a, 0x14, 0x7b, 0xcd, 0x14, 0x16, 0x97, + 0x8a, 0xd7, 0xe3, 0x5b, 0xb9, 0x30, 0x43, 0x82, 0xf9, 0x37, 0x79, 0xc0, 0x7a, 0xeb, 0x6b, 0xfd, + 0xe1, 0xae, 0xde, 0x6a, 0x37, 0x1b, 0xf5, 0xfa, 0x55, 0x91, 0x42, 0x28, 0x09, 0x95, 0x17, 0x80, + 0x0b, 0x24, 0x8b, 0xc0, 0x73, 0xcf, 0x39, 0x7c, 0xbc, 0x76, 0xb9, 0x54, 0xfa, 0x72, 0x51, 0x4c, + 0xc3, 0xf2, 0xa8, 0x96, 0xc7, 0x3b, 0xce, 0xf5, 0xd3, 0x95, 0x4b, 0xa5, 0xdb, 0x3c, 0x3f, 0x5e, + 0x9e, 0xc7, 0xae, 0x72, 0x9c, 0xef, 0x99, 0x99, 0xeb, 0x89, 0x99, 0x6b, 0xaf, 0xf2, 0xed, 0xee, + 0xb7, 0xbb, 0xfb, 0xdf, 0xef, 0x72, 0x1c, 0x14, 0xf2, 0xed, 0x57, 0xf2, 0x1d, 0x14, 0xaa, 0x34, + 0xb6, 0xa7, 0xd4, 0xc2, 0x53, 0xea, 0x17, 0xa9, 0x64, 0xb6, 0x43, 0x7b, 0xfd, 0xee, 0x64, 0x15, + 0x21, 0x54, 0x4f, 0xb5, 0xe7, 0x5a, 0x43, 0xa6, 0x8d, 0x4c, 0x1b, 0x99, 0xb6, 0xe0, 0x8c, 0xe9, + 0x3b, 0x1e, 0x3f, 0x23, 0xc8, 0xb1, 0x8f, 0xb1, 0x7d, 0x99, 0xd4, 0xaf, 0xac, 0xce, 0xf1, 0xb1, + 0x7d, 0x39, 0x0d, 0x43, 0x50, 0x39, 0xc6, 0x6e, 0x65, 0x22, 0x5c, 0xc1, 0x6e, 0xe5, 0xd1, 0x06, + 0x8b, 0x41, 0xf0, 0x39, 0x9c, 0x5b, 0x14, 0x3e, 0x94, 0x5a, 0x68, 0x2b, 0xc8, 0x6f, 0xbd, 0x68, + 0xf8, 0x01, 0x6f, 0x5f, 0x8c, 0x6f, 0xe1, 0xd6, 0xb7, 0x59, 0x7b, 0x8c, 0x36, 0x69, 0x38, 0x4f, + 0x6f, 0xb8, 0xe5, 0x46, 0xfe, 0xac, 0x3c, 0xc1, 0x7d, 0x42, 0x05, 0x8a, 0x25, 0xcb, 0x0a, 0x96, + 0x2c, 0x77, 0xca, 0x79, 0x58, 0xb2, 0x8c, 0x3f, 0x6f, 0xb0, 0x64, 0x89, 0x44, 0x0a, 0x89, 0x94, + 0xd2, 0x8c, 0xc1, 0x92, 0xa5, 0x38, 0x4b, 0x63, 0xc9, 0x72, 0x57, 0x8f, 0x87, 0x25, 0xcb, 0x2c, + 0x3f, 0x1e, 0x96, 0x2c, 0xb3, 0x3b, 0x33, 0xb1, 0x64, 0x99, 0xd5, 0xa7, 0xc3, 0x92, 0x65, 0xb6, + 0xfd, 0x0a, 0x96, 0x2c, 0x75, 0xab, 0x87, 0x58, 0xb2, 0xdc, 0x3e, 0x5a, 0x58, 0xb2, 0x44, 0xa6, + 0x8d, 0x4c, 0x5b, 0x65, 0xc6, 0x60, 0xc9, 0x72, 0xe6, 0x46, 0xb0, 0x64, 0xb9, 0xeb, 0x68, 0x8e, + 0x25, 0xcb, 0xdd, 0x42, 0x07, 0x96, 0x2c, 0x53, 0xb3, 0x64, 0x29, 0xb3, 0xce, 0x56, 0xa0, 0x5c, + 0xb1, 0x14, 0x78, 0x35, 0x5f, 0x7c, 0x70, 0xb2, 0x5d, 0x3b, 0x61, 0x79, 0xb8, 0xf4, 0x17, 0x4e, + 0x58, 0x1a, 0x20, 0xb2, 0xaa, 0x09, 0x31, 0xde, 0x71, 0x17, 0x7c, 0xd1, 0x55, 0xee, 0x05, 0xd7, + 0xd4, 0xbf, 0x93, 0x1d, 0xbf, 0x28, 0x80, 0x2a, 0x4e, 0xa7, 0xf0, 0xbd, 0xec, 0xd8, 0x45, 0x03, + 0x72, 0x64, 0xe2, 0xc2, 0xdb, 0x46, 0x54, 0x6c, 0x5b, 0x64, 0x87, 0x08, 0x8d, 0x55, 0x8b, 0xed, + 0x04, 0x91, 0xda, 0x01, 0x22, 0x6d, 0xd3, 0x15, 0xd8, 0x34, 0x6c, 0x5a, 0x87, 0x4d, 0x27, 0x54, + 0xe7, 0x68, 0x68, 0xd2, 0x69, 0xaa, 0x6e, 0xd4, 0x7f, 0x19, 0x8c, 0xfc, 0x70, 0x83, 0xcb, 0xf6, + 0x44, 0x5b, 0xd0, 0x23, 0x1c, 0xce, 0x4c, 0xa6, 0x4f, 0x33, 0x5d, 0xbf, 0xf2, 0xd7, 0x73, 0xbf, + 0x15, 0x90, 0xab, 0x8a, 0x57, 0x2c, 0xb4, 0x02, 0xa7, 0x37, 0x9e, 0x2f, 0xc5, 0x9a, 0x6d, 0x3b, + 0xde, 0x4b, 0x61, 0xd0, 0x42, 0x61, 0xc2, 0x62, 0x05, 0xdb, 0xe4, 0x66, 0x81, 0xfb, 0x85, 0xde, + 0xeb, 0x7b, 0xe8, 0x58, 0xa6, 0x5b, 0x98, 0x7c, 0xd3, 0xf0, 0x5f, 0x50, 0x1c, 0x26, 0xe3, 0x0e, + 0x2b, 0x4b, 0xc5, 0x61, 0xe4, 0xaa, 0x1a, 0x2d, 0x8d, 0xb7, 0x6c, 0x9a, 0xb1, 0xca, 0x64, 0x5a, + 0x7e, 0xcf, 0x70, 0xd9, 0x1b, 0x73, 0x0b, 0x96, 0xef, 0x71, 0xd3, 0xf1, 0x58, 0x50, 0xe8, 0xf8, + 0xc1, 0x0a, 0x1b, 0x42, 0x4d, 0x1a, 0x9d, 0x2a, 0x39, 0x36, 0x78, 0x6a, 0x51, 0x0b, 0x14, 0x43, + 0xe8, 0x53, 0x4a, 0x0a, 0x04, 0xc6, 0x9c, 0x94, 0x0a, 0x60, 0xa2, 0xa7, 0x16, 0xe0, 0x5f, 0x2c, + 0x30, 0xc2, 0x7e, 0xaf, 0xe7, 0xbe, 0x8b, 0xd4, 0x04, 0x9c, 0xb9, 0x0a, 0xb5, 0x01, 0x51, 0x1b, + 0x10, 0xca, 0x13, 0xb2, 0xd4, 0x7d, 0xcf, 0x52, 0xa7, 0x2e, 0x31, 0x41, 0x05, 0xea, 0x2f, 0x16, + 0x34, 0x87, 0xdf, 0x09, 0x21, 0x0a, 0x42, 0x14, 0x4c, 0x3c, 0x39, 0x13, 0x4f, 0x4c, 0x90, 0x9a, + 0x5a, 0xf8, 0x1e, 0x56, 0xdd, 0x16, 0x00, 0x4d, 0x9a, 0x4e, 0xd6, 0xc2, 0xd8, 0x81, 0xdf, 0x63, + 0x01, 0x77, 0x58, 0x28, 0x40, 0xd8, 0xd3, 0x6b, 0xc0, 0xd7, 0xe0, 0xeb, 0x35, 0x53, 0xea, 0x5d, + 0x3c, 0xfa, 0x46, 0x57, 0x82, 0xb1, 0x11, 0x80, 0x93, 0x16, 0x57, 0x51, 0x79, 0x5b, 0xef, 0xd4, + 0xde, 0x23, 0xa5, 0x53, 0x78, 0xea, 0x4b, 0xaa, 0x9d, 0x49, 0xbd, 0xce, 0x3e, 0x66, 0x16, 0xd5, + 0xad, 0xf5, 0x26, 0x0e, 0x47, 0x56, 0x37, 0x1f, 0x2a, 0x33, 0x22, 0x37, 0x27, 0x72, 0xb3, 0xa2, + 0x37, 0x2f, 0x39, 0x33, 0x93, 0x34, 0xb7, 0xe8, 0xf6, 0xe9, 0xb6, 0xd6, 0x87, 0x3c, 0x70, 0xbc, + 0x17, 0x8a, 0xf7, 0xd7, 0xcf, 0x52, 0xfc, 0x42, 0xcf, 0xdb, 0x78, 0x53, 0xb4, 0xa2, 0xbb, 0x19, + 0x35, 0x03, 0x7f, 0x03, 0x7f, 0x03, 0x7f, 0x23, 0x39, 0x73, 0xfa, 0x9e, 0xdc, 0x51, 0xbb, 0x4b, + 0xee, 0xe6, 0x5c, 0xa1, 0x8d, 0xf1, 0xe3, 0xec, 0xfc, 0x55, 0x1e, 0x32, 0x27, 0x4c, 0xe4, 0x8c, + 0x15, 0xa7, 0x89, 0x86, 0x9e, 0x79, 0xf6, 0x7d, 0x97, 0x99, 0x1e, 0x65, 0xd7, 0x94, 0x73, 0xd2, + 0x35, 0x8e, 0xc7, 0xa5, 0x4e, 0x91, 0x5d, 0xd7, 0x31, 0x55, 0x82, 0xa6, 0x68, 0x5e, 0x92, 0xa3, + 0xeb, 0xac, 0xe8, 0xc6, 0x28, 0x5f, 0x9a, 0x53, 0x4c, 0xb4, 0xb7, 0x36, 0x3b, 0x79, 0x83, 0xeb, + 0xbc, 0x52, 0x39, 0x3a, 0x3a, 0xad, 0x94, 0x8e, 0x4e, 0xce, 0x8e, 0xab, 0xa7, 0xa7, 0xc7, 0x67, + 0xa5, 0x33, 0xe2, 0x6f, 0xd2, 0xf0, 0x66, 0x17, 0x91, 0x9d, 0xcc, 0x0f, 0x1e, 0xe1, 0xeb, 0x76, + 0x44, 0x38, 0x26, 0x31, 0x78, 0xa7, 0x19, 0x1a, 0xbc, 0x83, 0x74, 0xb4, 0xf2, 0x94, 0x13, 0x57, + 0xdd, 0xa7, 0xf6, 0xd5, 0x67, 0xf0, 0xd5, 0xe9, 0x32, 0xf7, 0x12, 0x3c, 0x73, 0x56, 0x86, 0xaa, + 0x7c, 0x56, 0xad, 0x9e, 0x9c, 0x56, 0xab, 0xa5, 0xd3, 0xa3, 0xd3, 0xd2, 0xf9, 0xf1, 0x71, 0xf9, + 0xa4, 0x7c, 0x0c, 0xd7, 0xbc, 0xaf, 0xae, 0xd9, 0x66, 0x96, 0xd3, 0x35, 0x5d, 0x52, 0xef, 0x5c, + 0xae, 0x10, 0xb4, 0xb5, 0x34, 0x87, 0x2a, 0xf0, 0xf9, 0x72, 0xc3, 0x51, 0x81, 0xcf, 0xcf, 0x8a, + 0xcf, 0x3f, 0xc2, 0x50, 0xe5, 0xc4, 0xc1, 0xa3, 0x44, 0xc7, 0x6e, 0x4a, 0x74, 0x44, 0xfb, 0xa8, + 0x26, 0x3f, 0xbe, 0x27, 0x7f, 0xac, 0x40, 0x74, 0x0f, 0x93, 0x1f, 0xdf, 0x53, 0x74, 0xb0, 0x80, + 0xd4, 0xc2, 0xb3, 0xca, 0x82, 0xb3, 0x24, 0xcf, 0x62, 0x3f, 0x06, 0xf6, 0x63, 0x88, 0xfb, 0x1d, + 0xe9, 0x85, 0x9a, 0x68, 0xe4, 0x5d, 0x66, 0x76, 0xe4, 0x2a, 0x9a, 0x47, 0xf8, 0x2b, 0xa1, 0x74, + 0x15, 0x1b, 0x63, 0x57, 0xf7, 0xf1, 0xe3, 0xd8, 0x5f, 0x1d, 0x0e, 0x4d, 0x0d, 0x27, 0x91, 0x48, + 0xb9, 0x8c, 0x0a, 0x5c, 0x06, 0x5c, 0x46, 0xcc, 0xdb, 0x94, 0x3f, 0x91, 0x64, 0x38, 0xdb, 0xfa, + 0x81, 0xf9, 0xec, 0x12, 0xec, 0xad, 0x98, 0x6b, 0x0d, 0x5b, 0x2c, 0xb0, 0xc5, 0x62, 0x67, 0xe6, + 0xa6, 0x96, 0xc3, 0xec, 0x7e, 0x8b, 0x85, 0xfa, 0x9a, 0xb9, 0xe2, 0x5a, 0x79, 0x42, 0x45, 0x9a, + 0xb1, 0x83, 0x14, 0xee, 0x06, 0xee, 0x06, 0x3b, 0x48, 0xb1, 0x83, 0x14, 0xfe, 0x06, 0xfe, 0x66, + 0x6f, 0xfc, 0x0d, 0x76, 0x90, 0xea, 0x70, 0xc2, 0x44, 0xce, 0x58, 0x71, 0x9a, 0x68, 0xe8, 0x19, + 0xec, 0x20, 0x5d, 0xdb, 0x35, 0xd8, 0x41, 0x2a, 0x70, 0x63, 0xd8, 0x41, 0xba, 0xea, 0x9b, 0xb0, + 0x66, 0x8d, 0x1d, 0xa4, 0x74, 0x70, 0x41, 0xdf, 0x0a, 0x76, 0x90, 0xae, 0x99, 0xb5, 0xd8, 0x41, + 0x9a, 0x32, 0x73, 0xc7, 0x6e, 0xa2, 0xcc, 0x0c, 0x15, 0x76, 0x90, 0xc2, 0x35, 0x63, 0x07, 0xe9, + 0x1e, 0xf9, 0x7c, 0xec, 0x20, 0xc5, 0x0e, 0x52, 0x38, 0xf8, 0x84, 0x1d, 0x3c, 0x76, 0x90, 0xa6, + 0x66, 0x07, 0x69, 0xd2, 0xa7, 0xbc, 0xad, 0xd8, 0x40, 0x9a, 0xa1, 0x73, 0xde, 0x7e, 0x63, 0xef, + 0x82, 0x2b, 0xcb, 0xc5, 0x1b, 0x27, 0xe4, 0x35, 0xce, 0x05, 0xcb, 0x8b, 0xdd, 0x3a, 0x5e, 0xdd, + 0x65, 0xdd, 0x41, 0xef, 0x15, 0x3f, 0x15, 0xbc, 0xbe, 0xeb, 0x0a, 0x6c, 0x6b, 0xbb, 0x35, 0x7f, + 0xc8, 0x5f, 0x7c, 0x1f, 0xd8, 0x2c, 0x60, 0xf6, 0xc5, 0xfb, 0xf8, 0xd2, 0x6c, 0xd7, 0x39, 0x5d, + 0x9e, 0xf1, 0x09, 0x14, 0x3a, 0x5d, 0x9e, 0xe3, 0x7b, 0x56, 0xea, 0x34, 0x6e, 0xc5, 0x4f, 0x92, + 0x4e, 0xd6, 0x51, 0xe7, 0x34, 0xde, 0xc6, 0x50, 0xa1, 0x8d, 0xa0, 0xc2, 0xd5, 0x4d, 0x2b, 0xa8, + 0x6e, 0x1a, 0xc3, 0xa1, 0xa4, 0xbc, 0xba, 0xa9, 0xe9, 0xba, 0xbe, 0x65, 0x72, 0x66, 0x1b, 0xc3, + 0xfa, 0xbf, 0xe2, 0x45, 0x4e, 0x17, 0x1b, 0x10, 0xab, 0x75, 0x5a, 0x42, 0xad, 0x53, 0xd4, 0x3a, + 0x5d, 0xbc, 0x1d, 0xe1, 0xf5, 0xfa, 0x39, 0xa9, 0xfa, 0xa8, 0x22, 0x32, 0x68, 0xe3, 0x79, 0x28, + 0xb0, 0xbc, 0x21, 0x29, 0x43, 0x48, 0x60, 0xb4, 0x8a, 0xac, 0xa0, 0xba, 0x61, 0x47, 0x31, 0xf7, + 0xa4, 0xc8, 0x31, 0x65, 0xb6, 0x4a, 0xa9, 0xa4, 0xf7, 0x54, 0x5d, 0x56, 0xad, 0x9c, 0x57, 0xcf, + 0x4f, 0x4e, 0x2b, 0xe7, 0xc7, 0x3b, 0xec, 0x3b, 0x4d, 0xd9, 0xca, 0x53, 0x82, 0x67, 0x5e, 0xd8, + 0x73, 0x47, 0xb3, 0x09, 0x86, 0xa5, 0xd9, 0x8b, 0x11, 0x92, 0x10, 0x92, 0x76, 0x16, 0x92, 0x84, + 0x77, 0x47, 0x09, 0xee, 0x82, 0xa2, 0xb1, 0x35, 0xd6, 0xed, 0xc9, 0x54, 0xb8, 0x1f, 0x5d, 0x16, + 0xfb, 0x74, 0xd2, 0x8e, 0xd9, 0x77, 0x87, 0x23, 0xda, 0x31, 0xdd, 0x90, 0xc1, 0x2e, 0x61, 0x97, + 0xbb, 0xb3, 0x4b, 0xf1, 0xbd, 0x79, 0x82, 0x7b, 0xf0, 0x68, 0x0c, 0xb3, 0xe3, 0x04, 0xdd, 0xbf, + 0xcc, 0x80, 0x19, 0x6f, 0x2c, 0x08, 0xa5, 0x22, 0xe1, 0x52, 0x0b, 0x30, 0x3b, 0x98, 0x1d, 0xc2, + 0xe1, 0xc6, 0xef, 0x7c, 0x35, 0x03, 0x5b, 0xcd, 0xea, 0x96, 0x5a, 0x80, 0xd5, 0xc1, 0xea, 0x60, + 0x75, 0x1b, 0xbf, 0xd3, 0xb1, 0xc5, 0xed, 0xcc, 0xb1, 0x61, 0x59, 0xb0, 0x2c, 0x58, 0xd6, 0xe6, + 0xef, 0x1c, 0x4a, 0xf4, 0x52, 0x71, 0x2c, 0xba, 0x12, 0x56, 0x06, 0x2b, 0x83, 0x95, 0x6d, 0xfc, + 0xce, 0x2e, 0xeb, 0xfa, 0x81, 0x84, 0x8a, 0x32, 0xbe, 0x0e, 0xa7, 0x04, 0xc2, 0xc2, 0x14, 0x2d, + 0x4c, 0xf8, 0x94, 0x40, 0xf3, 0xcd, 0x74, 0x5c, 0xa9, 0x22, 0x3a, 0xd3, 0x05, 0xe0, 0xa8, 0x09, + 0xd4, 0xa6, 0xd3, 0x34, 0xd1, 0xc9, 0x26, 0x3c, 0xd9, 0xc4, 0xa7, 0x33, 0x00, 0x31, 0x43, 0x10, + 0x34, 0x08, 0xf9, 0xd0, 0xb3, 0x34, 0xf2, 0xd2, 0x6f, 0x41, 0x29, 0xbc, 0xf5, 0xa4, 0xb8, 0xe3, + 0x5d, 0xe1, 0x85, 0x77, 0x8a, 0x1d, 0xed, 0x44, 0xaf, 0xc2, 0x50, 0x6d, 0x83, 0xa6, 0xdc, 0xf6, + 0xac, 0xb0, 0x23, 0x9d, 0x64, 0x07, 0x3a, 0x75, 0xd7, 0xd2, 0xbf, 0x55, 0x44, 0xda, 0xdb, 0x09, + 0x6d, 0xaa, 0x7e, 0x4a, 0x41, 0xc5, 0xc7, 0x3e, 0x77, 0x5c, 0xe7, 0xdf, 0xcc, 0x96, 0x8f, 0xc7, + 0x51, 0x0b, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, 0x08, 0xc7, + 0xba, 0x52, 0xee, 0xa4, 0xdf, 0x18, 0x19, 0x6e, 0xe5, 0x3f, 0x14, 0x92, 0x8c, 0x0a, 0xf2, 0x6f, + 0x31, 0x0c, 0x5f, 0x7d, 0x6a, 0xdf, 0x8e, 0xbe, 0x2d, 0x49, 0x29, 0xad, 0xf3, 0x62, 0xd8, 0x22, + 0xb5, 0xaf, 0xa7, 0x62, 0xda, 0xe4, 0x4a, 0x08, 0xd6, 0x90, 0xd3, 0x14, 0x6d, 0x5b, 0x5e, 0xb0, + 0xb6, 0xc5, 0x5e, 0x5a, 0x9c, 0xca, 0xd5, 0x02, 0xd7, 0x34, 0x4c, 0xce, 0x59, 0xe0, 0x09, 0xf3, + 0x48, 0xf1, 0xbf, 0xff, 0x2c, 0x19, 0xe7, 0x4f, 0x7f, 0x57, 0x7f, 0x3e, 0x3e, 0x1a, 0xa3, 0x1f, + 0x2b, 0xb3, 0x3f, 0xfe, 0x47, 0x31, 0x95, 0xdb, 0x81, 0x07, 0x86, 0x2d, 0x54, 0x77, 0x77, 0xce, + 0x25, 0x88, 0xbc, 0x11, 0x09, 0x97, 0x00, 0x97, 0x40, 0xef, 0x12, 0xb2, 0xb1, 0x86, 0x25, 0x67, + 0x61, 0xb0, 0x2e, 0x58, 0x17, 0xac, 0x6b, 0xbb, 0x75, 0xf9, 0x3d, 0x16, 0x18, 0x03, 0x82, 0xef, + 0x87, 0xe2, 0x46, 0x36, 0x7b, 0x31, 0x6c, 0x0d, 0xb6, 0xb6, 0x33, 0x5b, 0x73, 0x6c, 0xe6, 0x71, + 0x87, 0xbf, 0x8b, 0x1d, 0xd5, 0x14, 0x19, 0x9c, 0x80, 0x94, 0x51, 0xbc, 0x1e, 0x7f, 0xd5, 0x85, + 0x19, 0x2a, 0x2c, 0x51, 0x5f, 0xde, 0xdf, 0x36, 0xee, 0xef, 0xea, 0x77, 0xad, 0xf6, 0x7d, 0xa3, + 0xfe, 0xd0, 0x6e, 0xb6, 0x6a, 0xad, 0x6f, 0x4d, 0xd1, 0xf1, 0x1f, 0x8a, 0x33, 0xa1, 0x94, 0xfa, + 0xa7, 0x58, 0xb8, 0xbd, 0x76, 0xd9, 0xba, 0xfe, 0x67, 0xbd, 0x98, 0xc4, 0x0b, 0x94, 0x8a, 0x77, + 0x7a, 0x7d, 0x97, 0x9d, 0x7b, 0xbd, 0xba, 0x6e, 0xd6, 0x2e, 0x6e, 0xea, 0x57, 0xba, 0xb5, 0xf1, + 0x27, 0x6a, 0xfb, 0x26, 0x89, 0x44, 0x3d, 0x33, 0x18, 0xb9, 0x22, 0xc1, 0x20, 0x34, 0xbe, 0x0e, + 0xf1, 0x07, 0xf1, 0x67, 0x67, 0xf1, 0x47, 0xfc, 0x98, 0x40, 0x99, 0xe3, 0x01, 0x67, 0x8f, 0x05, + 0x1c, 0xfd, 0x6f, 0x2a, 0xc2, 0x0a, 0x1f, 0x13, 0x48, 0x66, 0xb4, 0xdc, 0xf0, 0x7c, 0x29, 0xab, + 0x1d, 0x5e, 0x08, 0xb3, 0x85, 0xd9, 0x22, 0x45, 0xdb, 0xf8, 0x9d, 0x01, 0xeb, 0xfa, 0x6f, 0x42, + 0x3b, 0x22, 0xa3, 0x07, 0x9c, 0x5e, 0x0a, 0x3b, 0x83, 0x9d, 0xed, 0xcc, 0xce, 0x32, 0xf2, 0x66, + 0x73, 0xc8, 0x02, 0xc7, 0x74, 0xa5, 0xc2, 0xd9, 0xf4, 0x52, 0x18, 0x1a, 0x0c, 0x0d, 0x01, 0x6d, + 0xb3, 0x9d, 0xf9, 0x1d, 0xae, 0xf6, 0x2e, 0xf3, 0x52, 0x0b, 0xb0, 0x3a, 0x58, 0x1d, 0xac, 0x6e, + 0xe3, 0x77, 0x72, 0xd6, 0xed, 0xb1, 0xc0, 0xe4, 0xfd, 0x40, 0x02, 0x24, 0x67, 0x2f, 0xc6, 0x5b, + 0x61, 0xb0, 0x35, 0x45, 0x5b, 0x13, 0x7f, 0x2b, 0xcc, 0x35, 0x83, 0xae, 0x11, 0xb2, 0x37, 0x16, + 0x38, 0x02, 0x65, 0xa1, 0x96, 0x06, 0x7e, 0xa1, 0x1d, 0x6c, 0x48, 0xd7, 0x34, 0xe5, 0xc9, 0xa6, + 0x3e, 0x99, 0x09, 0xd0, 0x99, 0x82, 0x98, 0x49, 0x08, 0x9a, 0x86, 0x7c, 0x38, 0x5a, 0x1a, 0x79, + 0xb9, 0x45, 0xb1, 0x25, 0xff, 0x2d, 0xb1, 0xcf, 0x57, 0x6d, 0x91, 0x6c, 0xe9, 0x41, 0xee, 0x1b, + 0xf5, 0xbb, 0xcb, 0xfb, 0xbb, 0xcf, 0xd7, 0x5f, 0xda, 0xb5, 0x9b, 0xda, 0xc3, 0x6d, 0xbb, 0x59, + 0xff, 0x67, 0xfd, 0xe1, 0xba, 0xf5, 0x47, 0x51, 0xa5, 0x2e, 0x66, 0xa8, 0x74, 0x6e, 0x8b, 0xe2, + 0xf6, 0xec, 0xc9, 0xa3, 0x7d, 0xbb, 0xfb, 0xed, 0xee, 0xfe, 0xf7, 0xbb, 0xe2, 0x2e, 0x36, 0x9a, + 0x13, 0x3d, 0xc2, 0xed, 0xf5, 0xdd, 0xfd, 0x43, 0x96, 0x1f, 0xe0, 0xf2, 0xe1, 0xba, 0x75, 0x7d, + 0x59, 0xbb, 0xc9, 0xf2, 0x33, 0xfc, 0x5e, 0x7b, 0xb8, 0xbb, 0xbe, 0xfb, 0x92, 0xe9, 0x79, 0x54, + 0xfb, 0xff, 0x94, 0xe6, 0x91, 0xd4, 0x95, 0x4f, 0xa9, 0xa9, 0x63, 0x2b, 0xf2, 0x4a, 0xde, 0x98, + 0x62, 0xc4, 0x76, 0xed, 0xac, 0x63, 0x21, 0x91, 0xed, 0x3b, 0x20, 0x21, 0x90, 0x50, 0x06, 0x49, + 0x48, 0xfe, 0xd4, 0x6b, 0xc9, 0x53, 0xae, 0x75, 0x9a, 0x3d, 0x7f, 0x0d, 0x58, 0xf8, 0xea, 0xbb, + 0xb6, 0xaa, 0xe5, 0x4f, 0x1b, 0x82, 0xf1, 0xc3, 0xf8, 0x73, 0xfd, 0x5e, 0xae, 0xd0, 0x09, 0x0c, + 0x8b, 0xf3, 0xfc, 0x14, 0xef, 0xe5, 0x16, 0xe4, 0xd3, 0x2c, 0xbc, 0x97, 0xab, 0xb3, 0x6b, 0x55, + 0x4f, 0x76, 0xd0, 0xd2, 0xc7, 0x7b, 0x54, 0x1c, 0xc3, 0x7c, 0x7b, 0x51, 0xa9, 0x53, 0xf5, 0xb2, + 0x67, 0xa1, 0xd7, 0xe0, 0xef, 0x3d, 0x16, 0x22, 0x00, 0x6f, 0x08, 0xc0, 0xe3, 0x2e, 0xca, 0x5d, + 0x18, 0x56, 0x39, 0x18, 0x5a, 0xe5, 0x20, 0xe8, 0x65, 0xcf, 0x56, 0xde, 0xd7, 0x78, 0x5e, 0x41, + 0x3c, 0xd7, 0x15, 0xcf, 0x8f, 0x72, 0xd8, 0xb5, 0x7b, 0x14, 0xc6, 0x1d, 0x2f, 0xe4, 0xa6, 0xc0, + 0xcb, 0x07, 0x4b, 0xde, 0x6d, 0xd2, 0x00, 0xc2, 0x39, 0xc2, 0x39, 0xc2, 0x39, 0xc2, 0x39, 0xc2, + 0x39, 0xc2, 0x39, 0xc2, 0xf9, 0xee, 0xc2, 0x39, 0x67, 0xc1, 0x9b, 0xe9, 0xaa, 0xc4, 0xf3, 0x71, + 0x0b, 0xfb, 0x11, 0xd0, 0x11, 0xc7, 0xd7, 0xc5, 0xf1, 0x9c, 0x86, 0xef, 0x90, 0x9b, 0xdc, 0x90, + 0x9c, 0xe4, 0x05, 0xc5, 0x9a, 0x95, 0xdf, 0xbc, 0x91, 0x2f, 0x2b, 0x7a, 0xa6, 0xe7, 0x87, 0xcc, + 0xf2, 0x3d, 0x5b, 0x6a, 0xee, 0x41, 0x63, 0x47, 0x10, 0x4f, 0xa2, 0x6b, 0x51, 0xfb, 0x32, 0x2d, + 0x71, 0xbd, 0x2b, 0x31, 0x3b, 0xa6, 0x35, 0xd7, 0xcc, 0x1f, 0x48, 0xcf, 0x11, 0xd6, 0x91, 0x9e, + 0x23, 0x3d, 0x47, 0x7a, 0x8e, 0xf4, 0x1c, 0xe9, 0xf9, 0x2e, 0xc3, 0xb8, 0xc1, 0x9d, 0x2e, 0x53, + 0x8a, 0xe5, 0xa3, 0x16, 0x90, 0x9e, 0x23, 0x3d, 0xcf, 0x61, 0xf8, 0x1e, 0xcc, 0x6d, 0xee, 0x58, + 0xdf, 0xc3, 0xc4, 0x0f, 0x94, 0x40, 0x72, 0x8e, 0xe4, 0x1c, 0xc9, 0x39, 0xa2, 0xba, 0x44, 0x54, + 0x97, 0x30, 0xbc, 0x69, 0x40, 0x77, 0x3c, 0x24, 0xe7, 0x08, 0xea, 0x48, 0xce, 0x91, 0x9c, 0x23, + 0x39, 0x47, 0x72, 0x8e, 0xe4, 0x7c, 0x97, 0x61, 0x5c, 0x35, 0x39, 0x9f, 0xb4, 0x80, 0xe4, 0x1c, + 0xc9, 0x39, 0x92, 0x73, 0x24, 0xe7, 0x48, 0xce, 0x91, 0x9c, 0x23, 0x39, 0xa7, 0x8f, 0xea, 0x39, + 0x38, 0x35, 0x52, 0xbc, 0xae, 0x5c, 0x41, 0xf5, 0xe8, 0xc8, 0xd6, 0xcc, 0x57, 0x26, 0x59, 0x7e, + 0x4f, 0x24, 0xee, 0x4c, 0x63, 0xcd, 0xe0, 0x2a, 0x14, 0xb7, 0x44, 0xc1, 0x3d, 0x45, 0xeb, 0x96, + 0x2f, 0x6e, 0xd9, 0xf7, 0xe2, 0xd7, 0x57, 0x9d, 0x13, 0x28, 0xce, 0x05, 0xae, 0x19, 0xdf, 0x9e, + 0x18, 0x8f, 0xa0, 0x34, 0xda, 0x5c, 0x69, 0xb4, 0xaf, 0xb5, 0x87, 0xab, 0xdf, 0x6b, 0x0f, 0xf5, + 0x76, 0x74, 0xb6, 0x50, 0xf6, 0xcb, 0xa3, 0xdd, 0x5c, 0xdf, 0xd5, 0x2f, 0x6b, 0x0f, 0x57, 0x59, + 0xae, 0x6b, 0xd5, 0xb8, 0xff, 0xbd, 0xfe, 0xd0, 0x6e, 0x7e, 0x6b, 0x34, 0x6e, 0xfe, 0xc8, 0xf2, + 0x73, 0x7c, 0xae, 0x5d, 0x3c, 0x5c, 0x5f, 0x66, 0xba, 0xd0, 0x5b, 0xe3, 0x5b, 0x96, 0x6f, 0xff, + 0xfa, 0xae, 0x55, 0xff, 0xf2, 0x50, 0x6b, 0xd5, 0xaf, 0xda, 0x97, 0xd7, 0x0f, 0x97, 0xdf, 0xae, + 0x5b, 0x59, 0x7e, 0x9a, 0xfb, 0xc6, 0xb0, 0xe8, 0x5e, 0xfb, 0xf2, 0x6b, 0xed, 0xee, 0xae, 0x9e, + 0xe9, 0xe2, 0x7b, 0x17, 0xb5, 0xcb, 0xdf, 0x1a, 0x37, 0xb5, 0xbb, 0x7a, 0x96, 0x1f, 0xa2, 0xf5, + 0x50, 0xbb, 0x6b, 0x5e, 0xd6, 0xaf, 0xff, 0x59, 0x7f, 0xc8, 0xb6, 0x97, 0xca, 0x74, 0x31, 0xcd, + 0xcb, 0xaf, 0xb5, 0x66, 0xf3, 0xba, 0x99, 0xe5, 0x47, 0x68, 0xd6, 0xef, 0x9a, 0xd9, 0x2e, 0x08, + 0xfa, 0xf9, 0x21, 0xd3, 0x71, 0xe2, 0xf2, 0xfe, 0xae, 0xf5, 0x70, 0x7f, 0x73, 0x53, 0x7f, 0x68, + 0x67, 0x9f, 0x9d, 0x1e, 0x32, 0x1d, 0xe4, 0x9a, 0xad, 0xfb, 0x87, 0xda, 0x97, 0x7a, 0xee, 0xaa, + 0x9a, 0x7e, 0x40, 0xa2, 0x26, 0x9f, 0xa8, 0x35, 0xef, 0x3f, 0xb7, 0xf2, 0x96, 0xa8, 0xdd, 0x37, + 0xea, 0x0f, 0xb5, 0xd6, 0xf5, 0xdd, 0x97, 0x76, 0xf3, 0x8f, 0x66, 0xab, 0x7e, 0x9b, 0x6d, 0x32, + 0x9d, 0x7f, 0x96, 0xf6, 0xb7, 0xc6, 0x55, 0xad, 0x55, 0xdf, 0xdf, 0xd2, 0xc4, 0x4f, 0x09, 0xca, + 0xa4, 0xfd, 0x90, 0xd9, 0x46, 0xcf, 0xff, 0x8b, 0x05, 0xe2, 0x62, 0xe9, 0xcc, 0xb5, 0x90, 0x4c, + 0x21, 0x99, 0xaa, 0x39, 0x18, 0x15, 0xc9, 0x54, 0xb4, 0xe2, 0xa8, 0x44, 0xa5, 0x51, 0xc9, 0x35, + 0x5c, 0x89, 0x50, 0xac, 0xb2, 0x66, 0xab, 0xb8, 0xa0, 0xa8, 0xba, 0x46, 0x4b, 0xb1, 0x5a, 0x28, + 0x11, 0x8f, 0x94, 0xd6, 0x62, 0xa9, 0xba, 0x4c, 0xb5, 0x32, 0x28, 0x49, 0xdf, 0xa5, 0x3d, 0x20, + 0x1d, 0x28, 0x8c, 0xbc, 0xe8, 0x8a, 0xa9, 0xda, 0x4a, 0x69, 0x31, 0xce, 0xb9, 0x7a, 0xf2, 0xab, + 0xa2, 0x9b, 0x9d, 0xec, 0xfa, 0x7e, 0xda, 0xd0, 0x47, 0xc5, 0x90, 0xfb, 0x81, 0xf9, 0xb2, 0xdd, + 0x87, 0xce, 0x14, 0xa5, 0x18, 0x5d, 0xb0, 0xa5, 0xdf, 0xe3, 0x1d, 0x2c, 0x16, 0x3b, 0x58, 0x8b, + 0x04, 0x69, 0xc9, 0xe0, 0x2c, 0x1a, 0x94, 0xa5, 0x83, 0xb1, 0x74, 0x10, 0x96, 0x0f, 0xbe, 0x6a, + 0x36, 0x14, 0xf7, 0x20, 0xb0, 0xa2, 0x35, 0x19, 0x4d, 0x41, 0x26, 0x1c, 0x5f, 0x87, 0x33, 0xeb, + 0xc0, 0x83, 0x8a, 0x3c, 0x98, 0xfc, 0x06, 0x99, 0xa1, 0x37, 0x3c, 0x14, 0x9a, 0xc1, 0x4a, 0x71, + 0x60, 0xf8, 0x7d, 0xed, 0xf1, 0xa4, 0x4e, 0xf2, 0x3c, 0xd8, 0x61, 0x04, 0x12, 0x3f, 0x04, 0x36, + 0x66, 0x5c, 0x54, 0xb2, 0xec, 0x0a, 0x2c, 0x1b, 0x96, 0xad, 0xc9, 0xb2, 0x45, 0x26, 0x30, 0x81, + 0x61, 0xc7, 0x00, 0xbd, 0xfc, 0xa1, 0x73, 0x1c, 0xa2, 0x54, 0xef, 0x5b, 0x2d, 0xf8, 0xdc, 0x7f, + 0x9e, 0x3e, 0x93, 0x00, 0x44, 0xcf, 0x5d, 0x06, 0x94, 0x06, 0x4a, 0x6f, 0x9a, 0x58, 0x12, 0x51, + 0x77, 0xf6, 0x6a, 0x60, 0x35, 0x82, 0xaf, 0x62, 0xf0, 0x15, 0x3e, 0x0a, 0x5a, 0x30, 0x13, 0x54, + 0xcb, 0x08, 0x25, 0xa7, 0xb0, 0xf4, 0x54, 0x56, 0x99, 0xd2, 0x44, 0x53, 0x5b, 0x75, 0x8a, 0x93, + 0x4d, 0x75, 0xb2, 0x29, 0x4f, 0x37, 0xf5, 0x25, 0x85, 0x4d, 0xc1, 0xb1, 0x17, 0x35, 0x89, 0xe8, + 0xc2, 0x31, 0xbd, 0x28, 0x2e, 0x55, 0x0f, 0x5b, 0xf9, 0xb0, 0x13, 0xf1, 0x5a, 0xd6, 0x5c, 0x28, + 0xcc, 0x86, 0xd8, 0x7c, 0xa8, 0xcc, 0x88, 0xdc, 0x9c, 0xc8, 0xcd, 0x8a, 0xde, 0xbc, 0xe4, 0xcc, + 0x4c, 0xd2, 0xdc, 0xa2, 0xdb, 0x97, 0x7e, 0x33, 0x74, 0x69, 0xe6, 0xb8, 0xcc, 0xec, 0xc8, 0xed, + 0x58, 0x59, 0x8a, 0x37, 0xa7, 0x0a, 0x6d, 0x34, 0xc6, 0xf9, 0xd2, 0xc7, 0x8f, 0x87, 0xb3, 0xff, + 0x9b, 0xa6, 0x47, 0xa3, 0x50, 0x78, 0x38, 0x34, 0xf8, 0x84, 0x5e, 0x86, 0xd3, 0xeb, 0x39, 0x25, + 0x33, 0x79, 0xf5, 0x3c, 0x73, 0x36, 0xe9, 0x9a, 0xfb, 0xdb, 0xa1, 0x14, 0x6e, 0xa8, 0x64, 0xa4, + 0xb3, 0xb7, 0x32, 0xf7, 0x37, 0x21, 0x65, 0x4f, 0x7c, 0xbc, 0x44, 0x8a, 0x0c, 0x48, 0x05, 0x2a, + 0x95, 0x00, 0x85, 0x33, 0x6b, 0xc1, 0x6f, 0x89, 0x79, 0x21, 0xf5, 0x12, 0x03, 0xf2, 0x01, 0x44, + 0x25, 0x70, 0xcc, 0x06, 0x0c, 0xe9, 0xd0, 0xa0, 0xc7, 0x61, 0x88, 0x2d, 0x11, 0x2c, 0x8b, 0x16, + 0x82, 0x4a, 0x2b, 0x49, 0xca, 0x57, 0x81, 0xcb, 0x80, 0xcb, 0x40, 0xca, 0x87, 0x94, 0x0f, 0x29, + 0x1f, 0x52, 0x3e, 0xa4, 0x7c, 0xfb, 0x93, 0xf2, 0xc9, 0xd0, 0x86, 0x9e, 0x8c, 0x4f, 0x60, 0xc9, + 0x57, 0x82, 0xdf, 0x48, 0xd7, 0x01, 0x7e, 0x63, 0xef, 0x82, 0x91, 0xa8, 0x78, 0xe3, 0x84, 0xbc, + 0xc6, 0xb9, 0xe0, 0xfa, 0xc1, 0xad, 0xe3, 0xd5, 0x5d, 0xd6, 0x1d, 0xaf, 0xaa, 0x7a, 0x7d, 0xd7, + 0x15, 0xe0, 0xd0, 0x5b, 0xf3, 0x87, 0xfc, 0xc5, 0xf7, 0x81, 0xcd, 0x02, 0x66, 0x5f, 0xbc, 0x8f, + 0x2f, 0xcd, 0xf6, 0x26, 0x86, 0xb5, 0xf3, 0x3f, 0x81, 0x1d, 0x0d, 0x6b, 0x67, 0xfc, 0x9e, 0x6d, + 0x6f, 0x10, 0x58, 0xeb, 0xa7, 0xea, 0x6e, 0x1d, 0x5b, 0x1d, 0x78, 0x60, 0x7a, 0xa1, 0xc5, 0x9c, + 0xb7, 0x18, 0x6f, 0xfd, 0x4c, 0x4b, 0x23, 0xcd, 0x5c, 0x94, 0x8d, 0x6d, 0x0e, 0xf1, 0xef, 0xb8, + 0x90, 0xc9, 0x9d, 0x0e, 0xb3, 0xcf, 0x87, 0x7d, 0xc3, 0x84, 0x39, 0x8f, 0xea, 0x06, 0x07, 0xb1, + 0x89, 0xa7, 0x9a, 0xc6, 0xa4, 0x6f, 0x8f, 0x83, 0xd0, 0xc4, 0xd4, 0x83, 0x37, 0xc2, 0xdb, 0x1c, + 0x98, 0x67, 0x3e, 0xbb, 0xcc, 0x96, 0xd7, 0xbc, 0x26, 0x0d, 0xec, 0x49, 0x15, 0x5e, 0xa9, 0x29, + 0xbe, 0x3f, 0xc2, 0x97, 0x94, 0x09, 0x64, 0x45, 0x2e, 0x7f, 0xf6, 0x7d, 0x97, 0x99, 0x9e, 0x8a, + 0x5c, 0x5e, 0x4e, 0x81, 0xc8, 0xcd, 0xf8, 0x2b, 0x0b, 0x3c, 0xc6, 0x8d, 0x5e, 0xd7, 0x36, 0x7a, + 0x01, 0x1b, 0xc4, 0x20, 0x05, 0xfb, 0x5f, 0xd5, 0x1a, 0x9c, 0x01, 0x9c, 0x41, 0xce, 0x9d, 0x41, + 0x6e, 0x4a, 0x86, 0xd4, 0x5b, 0x5f, 0xeb, 0x0f, 0x77, 0xf5, 0x56, 0xbb, 0x71, 0x7b, 0xd5, 0x6e, + 0xfd, 0xd1, 0xa8, 0x67, 0xbf, 0x4c, 0x48, 0xbd, 0xf5, 0xb5, 0x5d, 0x2e, 0x95, 0xbe, 0x5c, 0xd4, + 0x9a, 0xf5, 0x76, 0xf3, 0xa1, 0x9a, 0xe5, 0x32, 0x21, 0xa3, 0x67, 0x19, 0x3d, 0xca, 0xcd, 0x43, + 0xd6, 0x9f, 0xa4, 0x3a, 0x7e, 0x92, 0x46, 0xf3, 0x36, 0x07, 0xa3, 0x12, 0x0d, 0x4b, 0xe6, 0x9f, + 0xe5, 0xdb, 0xdd, 0x55, 0xfd, 0xf3, 0xf5, 0x5d, 0xfd, 0x2a, 0x0f, 0x83, 0xd2, 0xae, 0xdd, 0x5f, + 0x66, 0xde, 0x50, 0xfe, 0x2b, 0x3f, 0x46, 0x3f, 0xe3, 0x8a, 0xcb, 0xa5, 0xbc, 0xf8, 0xe2, 0x7f, + 0x3d, 0xe4, 0xe5, 0x49, 0x9a, 0x0f, 0xf9, 0x31, 0x96, 0x66, 0x7e, 0x8c, 0xe5, 0xf2, 0xf7, 0xab, + 0xec, 0xc7, 0xc8, 0x6a, 0x9e, 0x20, 0x6c, 0xfc, 0x2c, 0xf5, 0x3c, 0x01, 0xe5, 0x6d, 0x6e, 0x86, + 0x25, 0x57, 0x48, 0x79, 0x79, 0x93, 0x0f, 0x83, 0x69, 0xd7, 0x2e, 0x2f, 0xf3, 0x33, 0x28, 0x0f, + 0xb9, 0xf1, 0xc7, 0x39, 0xf2, 0x61, 0xf5, 0xdc, 0x24, 0xc5, 0x37, 0xf9, 0x99, 0x5f, 0x6a, 0xa6, + 0x92, 0xf1, 0x42, 0xa6, 0x22, 0x62, 0x7c, 0x87, 0x59, 0x46, 0xd7, 0xb7, 0x15, 0x36, 0x9d, 0x47, + 0x2d, 0x40, 0x74, 0x8f, 0xd1, 0x12, 0x44, 0x77, 0x42, 0x8b, 0x80, 0xe8, 0x2e, 0xfb, 0x20, 0x9f, + 0xeb, 0x97, 0xed, 0xdb, 0xfb, 0xab, 0x7a, 0x4e, 0x04, 0xf7, 0xc1, 0xe3, 0xd4, 0xbe, 0xb5, 0xee, + 0x33, 0x7d, 0x1c, 0x43, 0xfd, 0xb2, 0x5d, 0xbf, 0xab, 0x5d, 0xdc, 0x64, 0x5b, 0x04, 0x1d, 0x3c, + 0xc6, 0xd5, 0x75, 0x53, 0xf5, 0x39, 0xf6, 0x29, 0x04, 0xfb, 0x41, 0xd7, 0xe8, 0x98, 0x16, 0xf7, + 0x03, 0xf5, 0xe5, 0xf0, 0x55, 0x8d, 0x21, 0x30, 0x23, 0x30, 0x23, 0x30, 0x67, 0x23, 0x30, 0xcf, + 0x9c, 0x4f, 0xd5, 0xfe, 0x7c, 0xff, 0x70, 0xdb, 0xfe, 0x5c, 0xbb, 0x6c, 0xdd, 0x3f, 0xe4, 0x24, + 0x4e, 0xff, 0x9f, 0xe6, 0xe7, 0x46, 0xbb, 0x71, 0xf3, 0x2d, 0xd3, 0x27, 0x3f, 0x0d, 0x1e, 0xa2, + 0x72, 0x96, 0xe9, 0xa3, 0x93, 0x3e, 0x37, 0xb2, 0x7c, 0xfb, 0xff, 0x55, 0xc9, 0x78, 0xe7, 0x67, + 0x5a, 0x66, 0xf9, 0xaf, 0x6c, 0x4f, 0x9e, 0xcb, 0xcf, 0x8d, 0x4a, 0xbb, 0x76, 0x99, 0xe9, 0x54, + 0xe1, 0xbe, 0xf5, 0x35, 0xdb, 0xaa, 0x63, 0x33, 0xdb, 0x73, 0xe8, 0xee, 0xfe, 0x6e, 0x10, 0xc5, + 0xbe, 0x7c, 0x19, 0x64, 0x39, 0xd9, 0x3e, 0x2a, 0xb6, 0xf6, 0x5b, 0xd6, 0x8d, 0x39, 0xeb, 0x28, + 0x91, 0x71, 0x3b, 0x56, 0xc5, 0xb9, 0xac, 0x27, 0xfa, 0x99, 0x7e, 0xbb, 0x75, 0x26, 0x27, 0x4c, + 0xac, 0x00, 0x7f, 0x6b, 0xfa, 0x9d, 0x3b, 0x28, 0xc2, 0xdf, 0x7b, 0x7d, 0x0f, 0x1d, 0xcb, 0x74, + 0x0d, 0xeb, 0xd5, 0xf4, 0x3c, 0xe6, 0x86, 0xe2, 0xef, 0xcc, 0x2d, 0x37, 0x81, 0xd7, 0xe7, 0xf0, + 0xfa, 0x1c, 0x89, 0xfd, 0x8b, 0x57, 0x09, 0x1e, 0x4d, 0x41, 0x85, 0x32, 0xc1, 0xe3, 0x06, 0xf6, + 0xa3, 0x4e, 0x30, 0x34, 0xc2, 0xcc, 0x6a, 0x84, 0xd2, 0xa5, 0xa3, 0x24, 0x0b, 0x69, 0x2f, 0x5b, + 0x8a, 0x6c, 0x85, 0x4b, 0x05, 0x83, 0x51, 0x36, 0x1c, 0x0a, 0x03, 0xa2, 0x37, 0x24, 0x2a, 0x83, + 0x22, 0x37, 0x2c, 0x72, 0x03, 0xd3, 0x62, 0x68, 0x6a, 0xec, 0x2c, 0x5b, 0x44, 0x4a, 0xd6, 0x00, + 0xa3, 0x06, 0x6c, 0x16, 0x5a, 0x81, 0xd3, 0x93, 0xae, 0x61, 0xb4, 0x72, 0x2e, 0xce, 0x36, 0xaa, + 0x38, 0x44, 0x6a, 0x15, 0xde, 0xc8, 0x4c, 0x95, 0xd2, 0x64, 0xf5, 0x99, 0x2e, 0xb5, 0x09, 0x6b, + 0x33, 0x65, 0x6d, 0x26, 0xad, 0xd5, 0xb4, 0xd5, 0x4c, 0x9c, 0x40, 0x20, 0x28, 0x90, 0xd4, 0x8d, + 0x5b, 0x9a, 0x7f, 0x21, 0x0f, 0x1c, 0xef, 0x85, 0x62, 0xde, 0x4d, 0x02, 0xea, 0xd9, 0xc1, 0x6e, + 0xfa, 0x57, 0xa1, 0x6f, 0x8b, 0x8e, 0x67, 0xb3, 0x1f, 0x74, 0x3e, 0x70, 0xd4, 0x1c, 0xbc, 0x1f, + 0xbc, 0x1f, 0xbc, 0x5f, 0xaa, 0xbd, 0x5f, 0xdf, 0xf1, 0x78, 0xf9, 0x84, 0xd0, 0xfb, 0x9d, 0x10, + 0x34, 0x25, 0x77, 0xc2, 0xfa, 0xba, 0xff, 0x68, 0xec, 0xa0, 0xa0, 0x7a, 0x22, 0xbb, 0x66, 0x37, + 0xb7, 0xd4, 0xac, 0xe2, 0x09, 0xee, 0x6b, 0xdb, 0x25, 0x38, 0x9d, 0x5c, 0x93, 0x79, 0xcc, 0x0f, + 0x95, 0xf9, 0x43, 0xdb, 0x50, 0x1d, 0x61, 0xa8, 0x7e, 0x1e, 0xa4, 0xa3, 0x95, 0xa7, 0x0c, 0xb2, + 0x16, 0x37, 0x83, 0x17, 0xc6, 0x0d, 0xbf, 0xcf, 0x7b, 0x7d, 0x6e, 0xf4, 0xfc, 0xbf, 0x58, 0x40, + 0x47, 0x5e, 0xab, 0x1a, 0x07, 0x87, 0x81, 0xc3, 0xc0, 0x61, 0xa9, 0xe6, 0x30, 0x9b, 0x59, 0x4e, + 0xd7, 0x74, 0x4f, 0xaa, 0x94, 0x89, 0x68, 0x85, 0xa0, 0xad, 0xa5, 0x18, 0x52, 0x01, 0xe0, 0xc9, + 0x0d, 0x47, 0x05, 0xd4, 0x00, 0xc0, 0x03, 0xe0, 0xed, 0x03, 0xe0, 0xfd, 0x30, 0x5c, 0x33, 0x24, + 0xa5, 0xba, 0x49, 0x8b, 0x40, 0x39, 0xa0, 0x1c, 0x50, 0x2e, 0xd5, 0x28, 0x27, 0x5f, 0x13, 0x77, + 0x2d, 0xc8, 0x95, 0x77, 0xe5, 0x04, 0x13, 0x5d, 0xce, 0x55, 0x3c, 0x50, 0x26, 0x6a, 0x87, 0x62, + 0xeb, 0xe1, 0xd2, 0x8e, 0xba, 0xc3, 0xf1, 0x0f, 0x87, 0x4a, 0x9b, 0x2e, 0x0a, 0x34, 0x9b, 0x14, + 0x1b, 0xe3, 0xbb, 0xbb, 0x1c, 0xdf, 0x5c, 0x7b, 0xfc, 0x83, 0xd4, 0x41, 0xa3, 0xf2, 0x83, 0x2d, + 0x31, 0xd0, 0x8a, 0x0b, 0x4d, 0x24, 0x0b, 0x4c, 0x79, 0x3b, 0x38, 0x0d, 0x3b, 0x5f, 0x52, 0x10, + 0xcd, 0x70, 0x7c, 0x1a, 0xd5, 0xf1, 0x69, 0xe3, 0x83, 0xd2, 0x46, 0x16, 0x9e, 0x62, 0x4f, 0x26, + 0x77, 0x32, 0xea, 0xd2, 0x00, 0xc8, 0x9e, 0x59, 0x56, 0xa0, 0xdc, 0xc3, 0x57, 0x81, 0x27, 0x83, + 0x27, 0xdb, 0x89, 0x27, 0xc3, 0x1e, 0x3e, 0xa4, 0xdc, 0x48, 0xb9, 0x91, 0x72, 0x2b, 0xc6, 0x50, + 0xec, 0xe1, 0xc3, 0x1e, 0x3e, 0x78, 0x3f, 0x78, 0xbf, 0x7d, 0xf4, 0x7e, 0xd8, 0xc3, 0x27, 0x72, + 0x63, 0xd8, 0xc3, 0x87, 0x25, 0x5e, 0x2c, 0xf1, 0x16, 0xb0, 0xc4, 0xab, 0xc8, 0x5a, 0x1a, 0xf6, + 0xee, 0xcd, 0x36, 0x4a, 0xc3, 0x5d, 0x65, 0x70, 0x17, 0xb8, 0x0b, 0xdc, 0x45, 0x21, 0x34, 0x45, + 0x0d, 0x99, 0x6f, 0x2f, 0x74, 0x33, 0x64, 0x32, 0x97, 0x07, 0x8d, 0x12, 0x0d, 0x21, 0x2d, 0x8b, + 0x90, 0xb9, 0x00, 0x1d, 0xae, 0x60, 0xa5, 0x4b, 0x78, 0xef, 0xb1, 0xb0, 0x48, 0x48, 0x21, 0xc4, + 0x4e, 0x41, 0xbb, 0x73, 0xd0, 0xee, 0x24, 0xd6, 0x3a, 0x8b, 0x61, 0xcf, 0xa7, 0x0d, 0x4f, 0x88, + 0x66, 0x2d, 0x59, 0xda, 0xb6, 0x34, 0x67, 0x29, 0xb7, 0xfe, 0x2e, 0xc5, 0x7f, 0xc2, 0x4d, 0xa7, + 0x5a, 0xb6, 0x02, 0x6b, 0xca, 0x17, 0xe9, 0xf3, 0x46, 0xad, 0xf9, 0xe3, 0xe2, 0xb0, 0x11, 0x6f, + 0x15, 0xd6, 0x9d, 0xa4, 0x24, 0x91, 0xac, 0x68, 0xc8, 0x2f, 0xb5, 0xe6, 0x99, 0x9a, 0xf3, 0xcd, + 0x5c, 0x0d, 0xe9, 0x41, 0x3a, 0x5b, 0x7b, 0x4a, 0x49, 0x7e, 0x4c, 0x30, 0xe5, 0x8b, 0x8e, 0x17, + 0x72, 0x73, 0x18, 0xa9, 0x89, 0xc1, 0x75, 0xd2, 0x30, 0xe0, 0x15, 0xf0, 0x0a, 0x78, 0x05, 0xbc, + 0x02, 0x5e, 0x01, 0xaf, 0x20, 0x1d, 0xc0, 0x2b, 0xe0, 0x15, 0xf0, 0x4a, 0x07, 0xaf, 0x9c, 0x05, + 0x6f, 0xa6, 0xab, 0x83, 0x5e, 0xc7, 0x2d, 0x03, 0x5f, 0x81, 0xaf, 0xc0, 0xd7, 0xbd, 0xc3, 0xd7, + 0x90, 0x9b, 0xdc, 0x20, 0x76, 0x02, 0xb3, 0x8e, 0xe0, 0x8c, 0xb0, 0xc9, 0x6f, 0xde, 0x28, 0x86, + 0x15, 0x3d, 0xd3, 0xf3, 0x43, 0x66, 0xf9, 0x9e, 0x4d, 0x6a, 0x6b, 0x80, 0x58, 0x7d, 0x3b, 0x79, + 0x00, 0xb1, 0xbb, 0x87, 0x58, 0xdd, 0x43, 0x5a, 0x3e, 0xab, 0x56, 0x4f, 0x4e, 0xab, 0xd5, 0xd2, + 0xe9, 0xd1, 0x69, 0xe9, 0xfc, 0xf8, 0xb8, 0x7c, 0x22, 0x73, 0x78, 0x1f, 0xb8, 0x76, 0x7f, 0xb8, + 0xb6, 0x4b, 0x38, 0xeb, 0xa3, 0x90, 0x36, 0x68, 0x14, 0x34, 0x0b, 0x9a, 0x05, 0xcd, 0xee, 0x1d, + 0xcd, 0x42, 0x8c, 0x05, 0xc7, 0x2e, 0x0c, 0x1b, 0xc4, 0xd8, 0xdc, 0x71, 0x2c, 0xc4, 0x58, 0x40, + 0xeb, 0x6e, 0xa1, 0xd5, 0xe0, 0x4e, 0x97, 0x69, 0x21, 0xd7, 0x51, 0xcb, 0xc0, 0x57, 0xe0, 0x2b, + 0xf0, 0x75, 0xef, 0xf0, 0x75, 0x60, 0xfb, 0xdc, 0xb1, 0xbe, 0x87, 0x5a, 0x00, 0x16, 0x52, 0x2c, + 0xa4, 0x58, 0x20, 0x6c, 0x3a, 0x10, 0x16, 0x52, 0x2c, 0xa8, 0x36, 0x65, 0x54, 0x4b, 0xe8, 0xc8, + 0xa6, 0x40, 0xeb, 0x78, 0x60, 0x59, 0xb0, 0x2c, 0x58, 0x76, 0xff, 0x58, 0x16, 0x52, 0x2c, 0x38, + 0x76, 0x61, 0xd8, 0x20, 0xc5, 0xe6, 0x8e, 0x63, 0x21, 0xc5, 0x02, 0x5a, 0x77, 0x0b, 0xad, 0xba, + 0xa4, 0xd8, 0x49, 0xcb, 0xc0, 0x57, 0xe0, 0x2b, 0xf0, 0x75, 0xef, 0xf0, 0x15, 0x52, 0x2c, 0x10, + 0x56, 0x9f, 0xff, 0x06, 0xc2, 0xa6, 0x07, 0x61, 0x21, 0xc5, 0x82, 0x6a, 0x09, 0xa9, 0x76, 0xa7, + 0x25, 0xbe, 0x88, 0x0e, 0x10, 0x8a, 0xda, 0xd3, 0x7b, 0x90, 0xd0, 0xf0, 0xe0, 0x87, 0x43, 0xba, + 0x9a, 0x7f, 0x05, 0xcd, 0x67, 0x0b, 0x35, 0x07, 0xf7, 0xdb, 0xbe, 0x1e, 0xdc, 0x6f, 0x63, 0x78, + 0xbb, 0x19, 0x2c, 0xdb, 0x38, 0x3c, 0x44, 0xcf, 0x78, 0x76, 0xcc, 0xd0, 0xb0, 0xfa, 0x41, 0xc0, + 0x08, 0x2a, 0x62, 0x4c, 0x4f, 0x52, 0x59, 0x6e, 0x1b, 0x45, 0x1c, 0x63, 0x65, 0x47, 0x28, 0xe2, + 0x88, 0x22, 0x8e, 0xf1, 0x9e, 0x0c, 0x45, 0x1c, 0x21, 0x98, 0x40, 0x30, 0x81, 0x60, 0x92, 0x3a, + 0xc1, 0x04, 0xeb, 0x7d, 0x10, 0x4b, 0x16, 0x86, 0x0d, 0xeb, 0x7d, 0xb9, 0x13, 0x4b, 0xb0, 0xde, + 0x07, 0x65, 0x64, 0x77, 0x53, 0x1e, 0x45, 0x1c, 0x01, 0xaf, 0x80, 0x57, 0xc0, 0x2b, 0xe0, 0x15, + 0xf0, 0x0a, 0x78, 0x05, 0xbc, 0x02, 0x5e, 0x01, 0xaf, 0x59, 0x82, 0x57, 0x14, 0x71, 0x04, 0xbe, + 0x02, 0x5f, 0x81, 0xaf, 0xd4, 0x73, 0x16, 0x45, 0x1c, 0x01, 0xb1, 0x3a, 0x3d, 0x38, 0x20, 0x36, + 0x3d, 0x10, 0x8b, 0xed, 0x6a, 0xe0, 0xda, 0x74, 0x71, 0x2d, 0x8a, 0x38, 0x82, 0x66, 0x41, 0xb3, + 0xa0, 0x59, 0xaa, 0x39, 0x0b, 0x31, 0x16, 0x1c, 0xbb, 0x30, 0x6c, 0x10, 0x63, 0x73, 0xc7, 0xb1, + 0x10, 0x63, 0x01, 0xad, 0xbb, 0x85, 0x56, 0x14, 0x71, 0x04, 0xbe, 0x02, 0x5f, 0x81, 0xaf, 0xc4, + 0x73, 0x16, 0x6f, 0x0e, 0x03, 0x61, 0xf5, 0xf9, 0x6f, 0x20, 0x6c, 0x7a, 0x10, 0x16, 0x52, 0x2c, + 0xa8, 0x36, 0x65, 0x54, 0x8b, 0x22, 0x8e, 0x60, 0x59, 0xb0, 0x2c, 0x58, 0x96, 0x68, 0xce, 0x42, + 0x8a, 0x05, 0xc7, 0x2e, 0x0c, 0x1b, 0xa4, 0xd8, 0xdc, 0x71, 0x2c, 0xa4, 0x58, 0x40, 0xeb, 0x6e, + 0xa1, 0x15, 0x45, 0x1c, 0x81, 0xaf, 0xc0, 0x57, 0xe0, 0x2b, 0xf1, 0x9c, 0x85, 0x14, 0x0b, 0x84, + 0xd5, 0xe7, 0xbf, 0x81, 0xb0, 0xe9, 0x41, 0x58, 0x48, 0xb1, 0xa0, 0x5a, 0x42, 0xaa, 0x45, 0x11, + 0x47, 0xc1, 0x22, 0x8e, 0xe4, 0xa5, 0xff, 0x0a, 0x89, 0xd4, 0x72, 0xbc, 0x19, 0xdc, 0xf6, 0x85, + 0x63, 0x86, 0x97, 0xe3, 0x9b, 0xce, 0x60, 0x45, 0x47, 0xbf, 0xcf, 0x7b, 0x7d, 0x6e, 0x74, 0x02, + 0xf6, 0x3f, 0x7d, 0xe6, 0x59, 0xef, 0x74, 0xf5, 0x1c, 0x97, 0x5a, 0xa6, 0xa9, 0xe6, 0x58, 0x42, + 0x35, 0xc7, 0x1d, 0x26, 0x49, 0xa8, 0xe6, 0x98, 0x22, 0x57, 0x4f, 0x96, 0xfa, 0x44, 0xf3, 0x2f, + 0x32, 0xd6, 0x61, 0xce, 0x48, 0x31, 0xff, 0xe8, 0xb2, 0x9d, 0x69, 0x96, 0x73, 0xfb, 0xf5, 0xdf, + 0x14, 0xb7, 0x46, 0x9b, 0xd5, 0x10, 0x26, 0xa0, 0x3a, 0xb2, 0x18, 0x4d, 0xa8, 0xab, 0x2b, 0x6b, + 0xd1, 0xc9, 0xb1, 0x84, 0x59, 0x8a, 0x96, 0xec, 0x44, 0xf7, 0x50, 0xe9, 0xcf, 0x46, 0xb4, 0x8e, + 0x5e, 0x4a, 0x28, 0xff, 0x29, 0xbb, 0xb0, 0x37, 0xaa, 0x96, 0x4e, 0x0d, 0x7a, 0x14, 0x35, 0xd8, + 0x51, 0xb2, 0x1b, 0x90, 0x07, 0xc8, 0x9b, 0x7b, 0x32, 0x94, 0xec, 0xde, 0xad, 0x0b, 0xd0, 0xe1, + 0x0a, 0x56, 0xba, 0x04, 0x2c, 0x8f, 0x69, 0x76, 0x12, 0x6b, 0x9d, 0x05, 0x96, 0xc7, 0x64, 0xe6, + 0x2c, 0x76, 0x77, 0x61, 0x69, 0x6c, 0x61, 0xd8, 0xb0, 0xbb, 0x2b, 0x89, 0xa4, 0x53, 0x6b, 0xf2, + 0xb9, 0x38, 0xa4, 0xd8, 0xdd, 0xa5, 0xd9, 0xd1, 0xd3, 0xb7, 0x86, 0x92, 0xdd, 0x31, 0xa2, 0x17, + 0x4a, 0x76, 0x03, 0x5e, 0x01, 0xaf, 0x80, 0x57, 0xc0, 0x2b, 0xe0, 0x15, 0xf0, 0x0a, 0x78, 0x05, + 0xbc, 0x02, 0x5e, 0xe9, 0xe1, 0x15, 0x25, 0xbb, 0x81, 0xaf, 0xc0, 0x57, 0xe0, 0x2b, 0xf5, 0x9c, + 0x45, 0xc9, 0x6e, 0x40, 0xac, 0x4e, 0x0f, 0x0e, 0x88, 0x4d, 0x0f, 0xc4, 0xe2, 0xe5, 0x04, 0x70, + 0x6d, 0xba, 0xb8, 0x16, 0x25, 0xbb, 0x41, 0xb3, 0xa0, 0x59, 0xd0, 0x2c, 0xd5, 0x9c, 0x85, 0x18, + 0x0b, 0x8e, 0x5d, 0x18, 0x36, 0x88, 0xb1, 0xb9, 0xe3, 0x58, 0x88, 0xb1, 0x80, 0xd6, 0xdd, 0x42, + 0x2b, 0x4a, 0x76, 0x03, 0x5f, 0x81, 0xaf, 0xc0, 0x57, 0xe2, 0x39, 0x8b, 0x3a, 0x31, 0x40, 0x58, + 0x7d, 0xfe, 0x1b, 0x08, 0x9b, 0x1e, 0x84, 0x85, 0x14, 0x0b, 0xaa, 0x4d, 0x19, 0xd5, 0xa2, 0x64, + 0x37, 0x58, 0x16, 0x2c, 0x0b, 0x96, 0x25, 0x9a, 0xb3, 0x90, 0x62, 0xc1, 0xb1, 0x0b, 0xc3, 0x06, + 0x29, 0x36, 0x77, 0x1c, 0x0b, 0x29, 0x16, 0xd0, 0xba, 0x5b, 0x68, 0x45, 0xc9, 0x6e, 0xe0, 0x2b, + 0xf0, 0x15, 0xf8, 0x4a, 0x3c, 0x67, 0x21, 0xc5, 0x02, 0x61, 0xf5, 0xf9, 0x6f, 0x20, 0x6c, 0x7a, + 0x10, 0x16, 0x52, 0x2c, 0xa8, 0x96, 0x90, 0x6a, 0x51, 0xb2, 0x5b, 0xb0, 0x64, 0x37, 0x61, 0xd1, + 0xbf, 0x42, 0x22, 0xc5, 0xba, 0xef, 0x87, 0x37, 0xdc, 0x18, 0xde, 0x6f, 0x06, 0x4b, 0x37, 0x72, + 0x33, 0x78, 0x61, 0xdc, 0xd0, 0x53, 0xc1, 0x71, 0x55, 0xe3, 0xa8, 0xd6, 0x1d, 0x2b, 0x43, 0x42, + 0x21, 0x47, 0x14, 0x72, 0x4c, 0x38, 0xeb, 0xd1, 0x22, 0xd6, 0x53, 0x8a, 0xf4, 0x5a, 0xc4, 0xf9, + 0xfd, 0x2c, 0xd7, 0x5d, 0x41, 0xb9, 0xee, 0xac, 0x94, 0xeb, 0x3e, 0xc2, 0x50, 0xa1, 0x36, 0xb7, + 0x02, 0xe0, 0xfd, 0x30, 0x86, 0xc7, 0xe0, 0x10, 0x52, 0xdd, 0xa4, 0x45, 0xa0, 0x1c, 0x50, 0x0e, + 0x28, 0x97, 0x6a, 0x94, 0x7b, 0xf6, 0x7d, 0x97, 0x99, 0x1e, 0x25, 0xc8, 0x95, 0x77, 0xe5, 0x04, + 0x0f, 0x12, 0x1c, 0x12, 0x2a, 0xed, 0x24, 0x09, 0xcd, 0x44, 0x61, 0x70, 0xb5, 0xcb, 0x23, 0x72, + 0x16, 0x29, 0x3e, 0xd4, 0x62, 0x57, 0x08, 0x4e, 0x8a, 0x81, 0x8f, 0x1c, 0x55, 0x47, 0xb2, 0x99, + 0xa8, 0x7b, 0x2c, 0xde, 0x38, 0x21, 0xaf, 0x71, 0x2e, 0x17, 0x7f, 0x07, 0x39, 0x40, 0xdd, 0x65, + 0x03, 0x6f, 0x37, 0x20, 0x2a, 0xaf, 0xef, 0xba, 0x1f, 0x0e, 0x64, 0xe8, 0x54, 0xbd, 0x91, 0xfb, + 0xc0, 0x66, 0x01, 0xb3, 0x2f, 0xde, 0xc7, 0x4d, 0x68, 0xed, 0x70, 0x45, 0xeb, 0xd3, 0x6b, 0x75, + 0x12, 0xf6, 0xa6, 0xd1, 0xce, 0xc4, 0x2c, 0x2c, 0xbe, 0x9d, 0xc4, 0xfb, 0x64, 0xcc, 0x81, 0x95, + 0x1d, 0x50, 0x3d, 0x03, 0x29, 0x30, 0x80, 0x1a, 0x06, 0x2e, 0xde, 0x80, 0x6d, 0xef, 0xfe, 0x18, + 0x5d, 0x5f, 0x1c, 0xc5, 0x87, 0xb8, 0x3d, 0x3e, 0x57, 0x06, 0x2a, 0x6e, 0x58, 0x11, 0x3c, 0x5a, + 0x67, 0x8a, 0xeb, 0x31, 0x25, 0x08, 0x19, 0x2c, 0x57, 0xc7, 0x6f, 0x59, 0xcc, 0x56, 0xc6, 0x69, + 0x65, 0x6c, 0x26, 0xc1, 0x63, 0x5a, 0xe3, 0x17, 0x3d, 0x6a, 0xa6, 0x68, 0xf9, 0x9e, 0xc7, 0x2c, + 0xee, 0x07, 0xa3, 0xe3, 0x02, 0x85, 0x07, 0x61, 0x32, 0xfc, 0x0b, 0xed, 0x88, 0x46, 0x7d, 0xa9, + 0xfc, 0x54, 0x3a, 0x1f, 0x55, 0xc9, 0x3f, 0xe9, 0xf2, 0x4d, 0xd5, 0xfc, 0x92, 0x2c, 0x9f, 0x24, + 0xcb, 0x1f, 0x49, 0xf3, 0x45, 0xbd, 0x9c, 0x29, 0x9d, 0xff, 0x4d, 0x0b, 0x78, 0xda, 0xcc, 0xe3, + 0x0e, 0x7f, 0x0f, 0x58, 0x47, 0x66, 0xf0, 0x27, 0xbe, 0x5c, 0x62, 0x4b, 0x42, 0xf1, 0x7a, 0xfc, + 0xd5, 0x17, 0x66, 0xa8, 0x30, 0x7d, 0x26, 0x0f, 0xf2, 0xf9, 0xfa, 0xa2, 0xfe, 0xd0, 0xbe, 0xbc, + 0xbf, 0xbb, 0xab, 0x5f, 0xb6, 0xee, 0x1f, 0xda, 0xad, 0x3f, 0x1a, 0x75, 0xd9, 0x99, 0x34, 0x54, + 0x3c, 0x43, 0x25, 0x89, 0x9f, 0x48, 0x3a, 0xbb, 0xb9, 0x9c, 0x3e, 0x52, 0x71, 0x17, 0x72, 0x20, + 0xd1, 0x73, 0x34, 0x73, 0xf2, 0x1c, 0xb7, 0x8d, 0x7b, 0x92, 0x07, 0x39, 0x48, 0x46, 0x4d, 0xfe, + 0xa9, 0x8b, 0xf5, 0x05, 0xc0, 0xc8, 0x36, 0x39, 0x33, 0x2c, 0xdf, 0x56, 0x08, 0xcb, 0xd3, 0x26, + 0x10, 0x91, 0x11, 0x91, 0x73, 0x1e, 0x91, 0x87, 0x93, 0xdd, 0xf4, 0x6c, 0xd9, 0xf7, 0x07, 0xa2, + 0x98, 0x2c, 0xb1, 0x4b, 0xb8, 0xd8, 0x30, 0x39, 0x67, 0x81, 0x27, 0x1d, 0xfa, 0x8a, 0xff, 0xfd, + 0x67, 0xc9, 0x38, 0x7f, 0xfa, 0xbb, 0xfa, 0xf3, 0xf1, 0xd1, 0x18, 0xfd, 0x58, 0x99, 0xfd, 0xb1, + 0x35, 0xf9, 0xe1, 0xd3, 0xd2, 0x0f, 0xbf, 0x3c, 0x3e, 0x7e, 0x1c, 0xfe, 0xfc, 0x8f, 0x5f, 0xff, + 0xf3, 0x5f, 0x7f, 0xfe, 0xc3, 0x78, 0x5a, 0xfa, 0xc4, 0x7f, 0x88, 0x0f, 0xf6, 0x53, 0x0a, 0x1c, + 0x20, 0xf3, 0xcc, 0x67, 0x97, 0xd9, 0xf2, 0xee, 0x6f, 0xd2, 0x00, 0x9c, 0x1f, 0x9c, 0x5f, 0xce, + 0x9d, 0x9f, 0xfc, 0xf2, 0x93, 0xe4, 0x72, 0x93, 0x26, 0x93, 0xe7, 0xaf, 0x2c, 0xf0, 0x18, 0x37, + 0x7a, 0x5d, 0x15, 0xbb, 0x9f, 0x6d, 0x05, 0xc6, 0x0f, 0xe3, 0x87, 0x16, 0x91, 0x0d, 0x2d, 0xa2, + 0xde, 0xfa, 0x5a, 0x7f, 0xb8, 0xab, 0xb7, 0xda, 0x8d, 0xdb, 0xab, 0x9c, 0x08, 0x11, 0xf5, 0xd6, + 0xd7, 0x76, 0xb9, 0x54, 0xfa, 0x72, 0x51, 0x6b, 0xd6, 0xdb, 0xcd, 0x87, 0x6a, 0x96, 0x93, 0xf8, + 0xd1, 0xb3, 0x8c, 0x1e, 0xe5, 0xe6, 0x21, 0xeb, 0x4f, 0x52, 0x1d, 0x3f, 0x49, 0xa3, 0x79, 0x9b, + 0x83, 0x51, 0x89, 0x86, 0x25, 0xf3, 0xcf, 0xf2, 0xed, 0xee, 0xaa, 0xfe, 0xf9, 0xfa, 0xae, 0x7e, + 0x95, 0x87, 0x41, 0x69, 0xd7, 0xee, 0x2f, 0x33, 0x6f, 0x28, 0xff, 0x95, 0x1f, 0xa3, 0x9f, 0x71, + 0xc5, 0xe5, 0x52, 0x5e, 0x7c, 0xf1, 0xbf, 0x1e, 0xf2, 0xf2, 0x24, 0xcd, 0x87, 0xfc, 0x18, 0x4b, + 0x33, 0x3f, 0xc6, 0x72, 0xf9, 0xfb, 0x55, 0xf6, 0x63, 0x64, 0x35, 0x4f, 0x10, 0x36, 0x7e, 0x96, + 0x7a, 0x9e, 0x80, 0xf2, 0x36, 0x37, 0xc3, 0x92, 0x2b, 0xa4, 0xbc, 0xbc, 0xc9, 0x87, 0xc1, 0xb4, + 0x6b, 0x97, 0x97, 0xf9, 0x19, 0x94, 0x87, 0xdc, 0xf8, 0xe3, 0x1c, 0xf9, 0xb0, 0x7a, 0x6e, 0x92, + 0xe2, 0x9b, 0xfc, 0xcc, 0x2f, 0x35, 0x53, 0xd9, 0xa3, 0x0d, 0x07, 0xb3, 0xb2, 0xb9, 0xd1, 0x0b, + 0x98, 0xe5, 0x7b, 0x1d, 0x1a, 0x11, 0x3e, 0x6a, 0x0d, 0x62, 0x7c, 0x8c, 0x96, 0x20, 0xc6, 0x13, + 0x5a, 0x0a, 0xc4, 0x78, 0x05, 0x1f, 0x0a, 0x31, 0x3e, 0x2b, 0xb9, 0x13, 0xc4, 0xf8, 0x02, 0xc4, + 0x78, 0x0d, 0xcf, 0x02, 0x31, 0x3e, 0xb5, 0xfa, 0x22, 0xc4, 0xf8, 0x54, 0xfa, 0x62, 0x88, 0xf1, + 0x05, 0x88, 0xf1, 0x5a, 0xa5, 0x1f, 0x88, 0xf1, 0xe9, 0x1c, 0x18, 0x88, 0xf1, 0xa9, 0x1c, 0x16, + 0x88, 0xf1, 0xa9, 0x44, 0x31, 0x88, 0xf1, 0x69, 0xf4, 0xc7, 0x10, 0xe3, 0x53, 0x38, 0x28, 0x10, + 0xe3, 0x65, 0xa4, 0xbf, 0xc9, 0x7f, 0xd9, 0x14, 0xe3, 0x3b, 0x66, 0xdf, 0xe5, 0x86, 0xe5, 0x7b, + 0xb6, 0x23, 0x55, 0x9d, 0x25, 0xea, 0xfd, 0xc5, 0x86, 0x20, 0xc1, 0xc7, 0x68, 0x09, 0x12, 0x3c, + 0xa1, 0x7d, 0xe0, 0x65, 0x18, 0x49, 0x17, 0xc0, 0x2c, 0xc3, 0xf2, 0x83, 0x80, 0x59, 0x9c, 0xd9, + 0xc6, 0xf3, 0xa8, 0xd6, 0xa7, 0xac, 0x17, 0x58, 0x6e, 0x0b, 0x8e, 0x00, 0x8e, 0x20, 0xe7, 0x8e, + 0xc0, 0xf2, 0xfb, 0x1e, 0x67, 0x81, 0x54, 0x7d, 0x6d, 0x85, 0x33, 0x83, 0x14, 0x2b, 0x5d, 0x2b, + 0x14, 0x41, 0xa4, 0xa8, 0x64, 0x4d, 0x55, 0x2e, 0x96, 0xa8, 0xfc, 0x31, 0x65, 0xb9, 0x63, 0x95, + 0xf2, 0xbe, 0x14, 0x95, 0xa7, 0xa9, 0xbb, 0x96, 0xfe, 0x8c, 0x1b, 0xd2, 0xde, 0x4e, 0xa8, 0x24, + 0xe5, 0x53, 0xfa, 0x62, 0xf5, 0x3b, 0x67, 0x74, 0xc1, 0x7a, 0xd8, 0x18, 0xa2, 0x35, 0xa2, 0x35, + 0xa2, 0x35, 0xa2, 0x35, 0xa2, 0x35, 0xa2, 0x35, 0xa2, 0x35, 0x41, 0xb4, 0xee, 0x2a, 0x55, 0xd6, + 0x8a, 0x5a, 0x40, 0x5c, 0x46, 0x5c, 0xc6, 0x8e, 0xd6, 0x38, 0x92, 0x5a, 0x0a, 0x4a, 0x5d, 0xd6, + 0x2f, 0xdb, 0xb7, 0xf7, 0x57, 0xf5, 0x9c, 0xec, 0x66, 0x1d, 0x3c, 0x4e, 0xed, 0x5b, 0xeb, 0x3e, + 0xcb, 0x6b, 0x43, 0x83, 0x67, 0xa8, 0xdf, 0xd5, 0x2e, 0x6e, 0xb2, 0xbd, 0xc3, 0x70, 0xf0, 0x18, + 0x57, 0xd7, 0x4d, 0xd5, 0xe7, 0xd8, 0xa7, 0xf5, 0x2d, 0x66, 0x19, 0x21, 0x37, 0x79, 0x5f, 0x31, + 0x4f, 0x1e, 0xb7, 0x81, 0x30, 0x8c, 0x30, 0x8c, 0x30, 0x9c, 0x9d, 0x30, 0xdc, 0x6c, 0xd5, 0x5a, + 0xdf, 0x9a, 0x39, 0x0a, 0xc4, 0xe3, 0x07, 0xfa, 0x76, 0x77, 0x73, 0x7f, 0xf9, 0x5b, 0xf6, 0x83, + 0xd9, 0xf8, 0x71, 0x94, 0x1f, 0x66, 0xcf, 0x22, 0x5a, 0xdf, 0x1b, 0xeb, 0xb6, 0xe6, 0xb3, 0xcb, + 0x8c, 0x67, 0xd7, 0xb7, 0xbe, 0x2b, 0xc6, 0xb7, 0x95, 0x2d, 0x22, 0xda, 0x21, 0xda, 0x41, 0x0c, + 0xde, 0x3a, 0xe1, 0x21, 0x06, 0x2b, 0x2a, 0x96, 0x10, 0x83, 0xb5, 0x75, 0x2d, 0xc4, 0xe0, 0x42, + 0x8a, 0xc4, 0xe0, 0xf9, 0x28, 0x3b, 0x70, 0xfb, 0xa4, 0x61, 0x7b, 0xd4, 0x20, 0xa2, 0x36, 0xa2, + 0x36, 0xa2, 0x36, 0xa2, 0x36, 0xa2, 0x36, 0xa2, 0x36, 0xa2, 0xb6, 0x6a, 0xd4, 0xf6, 0x83, 0xae, + 0xd1, 0x31, 0x2d, 0xee, 0x07, 0x0a, 0x91, 0x7a, 0xa6, 0x11, 0x44, 0x67, 0x44, 0x67, 0x28, 0xc8, + 0x31, 0xa6, 0x7c, 0x0a, 0x14, 0xe4, 0xd6, 0x43, 0xed, 0xae, 0x79, 0x59, 0xbf, 0xfe, 0x67, 0xfd, + 0xa1, 0xfd, 0xf9, 0xfe, 0xe1, 0xb6, 0xfd, 0xb9, 0x96, 0xa3, 0xb3, 0x0b, 0xff, 0x4f, 0xf3, 0x73, + 0xa3, 0xdd, 0xb8, 0xf9, 0xd6, 0xcc, 0xb2, 0x88, 0x3c, 0x78, 0x88, 0xca, 0x59, 0x96, 0x9f, 0xe0, + 0xf2, 0x73, 0x23, 0xcb, 0xb7, 0xff, 0x5f, 0x95, 0x8c, 0x77, 0x7e, 0xa6, 0xdf, 0x79, 0xfd, 0xaf, + 0x6c, 0x4f, 0x9e, 0xcb, 0xcf, 0x8d, 0x4a, 0xbb, 0x76, 0x99, 0xe9, 0xad, 0x25, 0xf7, 0xad, 0xaf, + 0xd9, 0x7e, 0x05, 0xbc, 0x99, 0xed, 0x39, 0x74, 0x77, 0x7f, 0x37, 0x88, 0x62, 0x5f, 0xbe, 0xd4, + 0x2e, 0x6e, 0xea, 0x99, 0x36, 0x86, 0x46, 0xed, 0xb7, 0xac, 0x1b, 0x73, 0xd6, 0x51, 0x22, 0xe3, + 0x76, 0xac, 0x8a, 0x73, 0xfb, 0xb4, 0x8c, 0x3e, 0xcd, 0xc9, 0xd5, 0x8b, 0x10, 0xaf, 0x6a, 0x0c, + 0x89, 0x3e, 0x12, 0x7d, 0x24, 0xfa, 0x48, 0xf4, 0x91, 0xe8, 0x23, 0xd1, 0x47, 0xa2, 0x8f, 0x44, + 0x1f, 0x89, 0x3e, 0x12, 0x7d, 0x24, 0xfa, 0x48, 0xf4, 0x91, 0xe8, 0x23, 0xd1, 0x47, 0xa2, 0x9f, + 0x5c, 0xa2, 0xef, 0x78, 0xbd, 0x3e, 0x37, 0x7a, 0xfe, 0x5f, 0x4c, 0x61, 0x05, 0x7f, 0xb6, 0x11, + 0xb9, 0xc4, 0xbe, 0x8c, 0xc4, 0x1e, 0x89, 0x7d, 0x32, 0x89, 0xfd, 0x95, 0x13, 0xc8, 0x0d, 0xbf, + 0xf9, 0xf6, 0xa2, 0x9e, 0x4b, 0x0f, 0x1a, 0x91, 0xec, 0x62, 0xb5, 0x5d, 0x54, 0xd2, 0x26, 0x43, + 0x61, 0x3a, 0x2b, 0x4d, 0xe8, 0xbd, 0x27, 0x5c, 0x51, 0x89, 0xd2, 0x88, 0xc8, 0x8d, 0x89, 0xdc, + 0xa8, 0xd6, 0x1a, 0xd7, 0xb0, 0xe7, 0x92, 0xde, 0xa0, 0x26, 0x39, 0x6b, 0xa4, 0x75, 0xb4, 0xa5, + 0x39, 0x63, 0x33, 0xcb, 0xe9, 0x9a, 0xae, 0xd4, 0xb6, 0xd6, 0xa5, 0x78, 0x53, 0x51, 0x68, 0x63, + 0x69, 0xb3, 0xa0, 0x4a, 0x63, 0x6a, 0x9b, 0x66, 0x69, 0xd8, 0xa9, 0x40, 0xb5, 0x89, 0x76, 0xb1, + 0x9b, 0x2b, 0x1f, 0x68, 0x9a, 0x23, 0xda, 0x54, 0xbb, 0x7e, 0x04, 0x4b, 0xca, 0xed, 0xfe, 0xfc, + 0x40, 0x30, 0x04, 0x04, 0x9b, 0x6d, 0x17, 0x87, 0xe0, 0x68, 0x8f, 0x86, 0xe0, 0x60, 0x37, 0x57, + 0x3f, 0x25, 0xb4, 0xe3, 0x57, 0x62, 0x8a, 0x15, 0x1d, 0x2f, 0xe4, 0xe6, 0x30, 0x72, 0x28, 0x82, + 0xcb, 0xa4, 0x21, 0xc0, 0x0b, 0xe0, 0x05, 0xf0, 0x02, 0x78, 0x01, 0xbc, 0x00, 0x5e, 0x00, 0x2f, + 0x80, 0x17, 0xbd, 0xf0, 0xc2, 0x59, 0xf0, 0x66, 0xba, 0x14, 0xf4, 0x32, 0x6e, 0x09, 0xf8, 0x02, + 0x7c, 0x01, 0xbe, 0x08, 0xcf, 0x99, 0x90, 0x9b, 0xdc, 0x50, 0x34, 0xa2, 0x82, 0xda, 0xeb, 0xc5, + 0x51, 0x13, 0xdf, 0xbc, 0x91, 0xcf, 0x2d, 0x7a, 0xa6, 0xe7, 0x87, 0xcc, 0xf2, 0x3d, 0x5b, 0x69, + 0x2e, 0xe7, 0x1a, 0x62, 0x4a, 0x80, 0x98, 0x5d, 0x43, 0x0c, 0xf5, 0x10, 0xd0, 0xbf, 0xfe, 0x0c, + 0xae, 0x49, 0x96, 0x6b, 0xba, 0x0a, 0xb3, 0x2c, 0x72, 0xc9, 0x83, 0x46, 0x40, 0x33, 0xa0, 0x19, + 0xd0, 0x0c, 0xc4, 0x18, 0x88, 0x31, 0xe0, 0x18, 0x88, 0x31, 0x80, 0x16, 0xcd, 0xd0, 0x62, 0x70, + 0xa7, 0xcb, 0x48, 0xc8, 0x65, 0xd4, 0x12, 0xf0, 0x05, 0xf8, 0x02, 0x7c, 0x11, 0x9e, 0x33, 0x03, + 0xdb, 0xe1, 0x8e, 0xf5, 0x3d, 0x24, 0x01, 0x18, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0x40, 0x8a, + 0xd9, 0x53, 0xaa, 0x51, 0x30, 0xf4, 0x29, 0xd0, 0x38, 0x1e, 0x58, 0x06, 0x2c, 0x03, 0x96, 0x81, + 0x14, 0x03, 0x29, 0x06, 0x1c, 0x03, 0x29, 0x06, 0xd0, 0xa2, 0x1b, 0x5a, 0xa8, 0xa4, 0x98, 0x49, + 0x4b, 0xc0, 0x17, 0xe0, 0x0b, 0xf0, 0x05, 0x52, 0x0c, 0xa4, 0x18, 0x20, 0x0c, 0xa4, 0x18, 0x50, + 0x8d, 0x2a, 0xd5, 0x68, 0x7d, 0x85, 0xbb, 0xe6, 0x79, 0x3e, 0x37, 0x07, 0x43, 0x22, 0xf7, 0x26, + 0x77, 0x68, 0xbd, 0xb2, 0xae, 0xd9, 0x33, 0xf9, 0xeb, 0xc0, 0x61, 0x1e, 0xfa, 0x3d, 0xe6, 0x59, + 0x43, 0x12, 0x31, 0x7a, 0xae, 0xc9, 0x3b, 0x7e, 0xd0, 0x3d, 0xb4, 0xfc, 0x6e, 0xcf, 0xf7, 0x98, + 0xc7, 0xc3, 0xe9, 0x8f, 0x87, 0x33, 0x6f, 0xb5, 0x1f, 0x86, 0xdc, 0xe4, 0xec, 0x50, 0xbe, 0xf2, + 0xc1, 0xe8, 0x46, 0x78, 0xd0, 0xb7, 0xb8, 0x37, 0x29, 0xa1, 0x13, 0xdd, 0x47, 0x63, 0x7c, 0x1b, + 0xed, 0xcb, 0xe8, 0x36, 0xa6, 0x3f, 0xb6, 0x5b, 0xd3, 0xdb, 0x68, 0x37, 0x07, 0xb7, 0xd1, 0xbe, + 0x1e, 0xdc, 0x46, 0x63, 0x78, 0x17, 0x29, 0xa8, 0x29, 0xe1, 0x9a, 0x21, 0x0b, 0x8c, 0x67, 0xc7, + 0x0c, 0x0d, 0xab, 0x1f, 0x04, 0x4c, 0xe2, 0xf5, 0xb3, 0x28, 0xc0, 0xae, 0x68, 0x0b, 0x15, 0x26, + 0xf4, 0x83, 0x28, 0x2a, 0x4c, 0x28, 0xb8, 0x27, 0x54, 0x98, 0x40, 0x36, 0x87, 0x6c, 0x2e, 0x83, + 0xd9, 0x1c, 0xc4, 0xe8, 0xcc, 0x65, 0x72, 0x10, 0xa3, 0x77, 0x9e, 0xc9, 0x41, 0x8c, 0xce, 0x4f, + 0xda, 0x86, 0x0a, 0x13, 0x80, 0x17, 0xc0, 0x0b, 0xe0, 0x05, 0xf0, 0x02, 0x78, 0x01, 0xbc, 0x00, + 0x5e, 0xf2, 0x0f, 0x2f, 0xa8, 0x30, 0x01, 0x7c, 0x01, 0xbe, 0xa0, 0xc2, 0xc4, 0x6c, 0x13, 0x58, + 0x4b, 0xd7, 0xef, 0xb1, 0x00, 0x31, 0xe9, 0x1d, 0x02, 0xac, 0xa5, 0x67, 0x9d, 0x6b, 0x50, 0x61, + 0x02, 0x34, 0x03, 0x9a, 0x81, 0x18, 0x03, 0x31, 0x06, 0x62, 0x0c, 0xc4, 0x18, 0x40, 0x4b, 0x56, + 0xa0, 0x05, 0x15, 0x26, 0x80, 0x2f, 0xc0, 0x17, 0xbc, 0xd6, 0x00, 0x29, 0x06, 0x52, 0x0c, 0xa4, + 0x18, 0x48, 0x31, 0x79, 0xa0, 0x1a, 0x54, 0x98, 0x00, 0xcb, 0x80, 0x65, 0x20, 0xc5, 0x40, 0x8a, + 0x81, 0x14, 0x03, 0x29, 0x06, 0xd0, 0x92, 0x11, 0x68, 0x41, 0x85, 0x09, 0xe0, 0x0b, 0xf0, 0x05, + 0x52, 0x0c, 0xa4, 0x18, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0xa4, 0x8d, 0x6a, 0xf6, 0xa4, 0xc2, + 0x84, 0x72, 0x01, 0x84, 0x02, 0x65, 0xa1, 0x89, 0x9b, 0xc1, 0xdd, 0x5c, 0x38, 0x66, 0x78, 0x39, + 0xbe, 0x97, 0x14, 0x94, 0x9b, 0xf0, 0xb9, 0x67, 0x0c, 0x7a, 0xd0, 0x75, 0x4c, 0xcf, 0x62, 0x86, + 0xe5, 0xdb, 0x4c, 0xbe, 0xde, 0xc4, 0xaa, 0xc6, 0xe4, 0x0a, 0x4e, 0x94, 0x50, 0x70, 0x62, 0x17, + 0x3c, 0xba, 0x8f, 0x05, 0x27, 0xa4, 0x69, 0x73, 0xfa, 0xf6, 0x82, 0xcd, 0x3c, 0xee, 0xf0, 0xf7, + 0x80, 0x75, 0x64, 0x06, 0x7f, 0x22, 0x8f, 0x49, 0xc4, 0xc3, 0xe2, 0xf5, 0xf8, 0xab, 0x2f, 0xcc, + 0x90, 0x20, 0xdd, 0xbc, 0x6f, 0xdd, 0xb5, 0x6b, 0x8d, 0xc6, 0xcd, 0xf5, 0x65, 0xad, 0x75, 0x7d, + 0x7f, 0xd7, 0xbe, 0xbc, 0xbf, 0xaa, 0xcb, 0xce, 0xa4, 0x61, 0xe0, 0x0f, 0x95, 0x08, 0x55, 0x31, + 0x49, 0x9b, 0x3c, 0x55, 0xa3, 0x7c, 0x53, 0x6e, 0x57, 0xae, 0x2a, 0x0a, 0xe9, 0xcf, 0x87, 0x5d, + 0x3f, 0xc3, 0x60, 0x64, 0xbe, 0xdd, 0x5d, 0xd5, 0x3f, 0x5f, 0xdf, 0xd5, 0xaf, 0xb2, 0xfc, 0x20, + 0xe3, 0xc1, 0x28, 0x67, 0xfb, 0x19, 0x9a, 0xaa, 0x13, 0xea, 0x20, 0x19, 0x3a, 0xfc, 0x99, 0x06, + 0xc2, 0xe8, 0xf3, 0x69, 0x99, 0x2f, 0x79, 0xb4, 0x98, 0x6d, 0x05, 0x45, 0xac, 0xc0, 0x14, 0x28, + 0x62, 0xb5, 0x76, 0xee, 0xa0, 0x88, 0x15, 0x04, 0x63, 0x65, 0xe3, 0xc2, 0x7a, 0xb7, 0xaa, 0x84, + 0x86, 0xf5, 0xee, 0x65, 0xa5, 0x12, 0xeb, 0xdd, 0x4a, 0xc2, 0x22, 0xd6, 0xbb, 0x77, 0x3e, 0x04, + 0x58, 0xef, 0x5e, 0xea, 0x66, 0x14, 0xb1, 0x02, 0xbc, 0x00, 0x5e, 0x00, 0x2f, 0x80, 0x17, 0xc0, + 0x0b, 0xe0, 0x05, 0xf0, 0x92, 0x31, 0x78, 0x41, 0x11, 0x2b, 0xe0, 0x0b, 0xf0, 0x05, 0x45, 0xac, + 0x66, 0x9b, 0xc0, 0x76, 0x3d, 0xfd, 0x1e, 0x0b, 0x10, 0x93, 0xde, 0x21, 0xc0, 0x76, 0xbd, 0xac, + 0x73, 0x0d, 0x8a, 0x58, 0x81, 0x66, 0x40, 0x33, 0x10, 0x63, 0x20, 0xc6, 0x40, 0x8c, 0x81, 0x18, + 0x03, 0x68, 0xc9, 0x0a, 0xb4, 0xa0, 0x88, 0x15, 0xf0, 0x05, 0xf8, 0x82, 0x37, 0x27, 0x21, 0xc5, + 0x40, 0x8a, 0x81, 0x14, 0x03, 0x29, 0x26, 0x0f, 0x54, 0x83, 0x22, 0x56, 0x60, 0x19, 0xb0, 0x0c, + 0xa4, 0x18, 0x48, 0x31, 0x90, 0x62, 0x20, 0xc5, 0x00, 0x5a, 0x32, 0x02, 0x2d, 0x28, 0x62, 0x05, + 0x7c, 0x01, 0xbe, 0x40, 0x8a, 0x81, 0x14, 0x03, 0x29, 0x06, 0x52, 0x0c, 0xa4, 0x98, 0xb4, 0x51, + 0xcd, 0x9e, 0x14, 0xb1, 0x52, 0x28, 0x7d, 0x50, 0xa0, 0x2c, 0x5f, 0x75, 0x3f, 0xbc, 0x8f, 0xc6, + 0xf0, 0x36, 0x52, 0x50, 0x57, 0xa2, 0xe7, 0x87, 0xdc, 0xe8, 0x30, 0xcb, 0x78, 0x56, 0xa9, 0x2b, + 0x31, 0xd7, 0x0a, 0xea, 0x4a, 0xe8, 0xc7, 0x4f, 0xd4, 0x95, 0x50, 0x70, 0x4a, 0xa8, 0x2b, 0x91, + 0x8e, 0x1c, 0xce, 0xef, 0x71, 0xe4, 0x71, 0xd2, 0x06, 0x36, 0xed, 0x3d, 0x48, 0xd1, 0x0a, 0xc6, + 0x44, 0x2b, 0x45, 0x97, 0xcf, 0x90, 0xc8, 0xad, 0xee, 0x67, 0x68, 0xd1, 0x3b, 0x4f, 0xe4, 0xa0, + 0x45, 0xe7, 0x27, 0x6b, 0x43, 0x81, 0x09, 0x50, 0x0c, 0x28, 0x06, 0x14, 0x03, 0x8a, 0x01, 0xc5, + 0x80, 0x62, 0x40, 0x31, 0x7b, 0x44, 0x31, 0xa8, 0x34, 0xa1, 0x85, 0x63, 0xc0, 0x30, 0xb2, 0x0c, + 0x83, 0x4a, 0x13, 0xa8, 0x34, 0x91, 0x25, 0x88, 0xc1, 0x9a, 0xfa, 0xce, 0x21, 0x06, 0x6b, 0xea, + 0xe0, 0x9a, 0xf9, 0x6e, 0x46, 0xa5, 0x09, 0xa8, 0x32, 0x50, 0x65, 0xa0, 0xca, 0x40, 0x95, 0x81, + 0x2a, 0x03, 0x55, 0x06, 0xaa, 0x4c, 0xe6, 0xe8, 0x05, 0x25, 0x27, 0xa0, 0xca, 0x40, 0x95, 0xc1, + 0x7b, 0x0e, 0xd0, 0x64, 0xa0, 0xc9, 0x40, 0x93, 0x81, 0x26, 0x93, 0x07, 0xaa, 0x41, 0xc9, 0x09, + 0x68, 0x32, 0xd0, 0x64, 0xa0, 0xc9, 0x40, 0x93, 0x81, 0x26, 0x03, 0x4d, 0x06, 0x9a, 0x4c, 0xd6, + 0xe8, 0x05, 0xb5, 0x27, 0xa0, 0xc9, 0x40, 0x93, 0x81, 0x26, 0x03, 0x4d, 0x06, 0x9a, 0x0c, 0x34, + 0x19, 0x68, 0x32, 0x69, 0xa3, 0x9a, 0x3d, 0xa9, 0x3d, 0xa1, 0x50, 0x1e, 0xa1, 0x40, 0x59, 0x7b, + 0xa2, 0xe1, 0x87, 0xfc, 0x33, 0xb3, 0x2e, 0x52, 0x52, 0x7a, 0x22, 0x60, 0x04, 0x95, 0x27, 0x66, + 0x1a, 0x41, 0xe1, 0x09, 0xfd, 0xec, 0x89, 0xc2, 0x13, 0x0a, 0x1e, 0x09, 0x85, 0x27, 0x20, 0x44, + 0x67, 0x3f, 0x89, 0x83, 0x10, 0x0d, 0x21, 0x3a, 0x43, 0x59, 0x1c, 0x84, 0xe8, 0x9d, 0x67, 0x71, + 0x10, 0xa2, 0xf3, 0x93, 0xb2, 0xa1, 0xf0, 0x04, 0x28, 0x06, 0x14, 0x03, 0x8a, 0x01, 0xc5, 0x80, + 0x62, 0x40, 0x31, 0xa0, 0x98, 0x3d, 0xa2, 0x18, 0x14, 0x9e, 0xd0, 0xc2, 0x31, 0x60, 0x18, 0x59, + 0x86, 0x41, 0xe1, 0x09, 0x14, 0x9e, 0xc8, 0x12, 0xc4, 0x60, 0x41, 0x7d, 0xe7, 0x10, 0x83, 0x05, + 0x75, 0x70, 0xcd, 0x7c, 0x37, 0xa3, 0xf0, 0x04, 0x54, 0x19, 0xa8, 0x32, 0x50, 0x65, 0xa0, 0xca, + 0x40, 0x95, 0x81, 0x2a, 0x03, 0x55, 0x26, 0x73, 0xf4, 0x82, 0xc2, 0x13, 0x50, 0x65, 0xa0, 0xca, + 0xe0, 0x25, 0x07, 0x68, 0x32, 0xd0, 0x64, 0xa0, 0xc9, 0x40, 0x93, 0xc9, 0x03, 0xd5, 0xa0, 0xf0, + 0x04, 0x34, 0x19, 0x68, 0x32, 0xd0, 0x64, 0xa0, 0xc9, 0x40, 0x93, 0x81, 0x26, 0x03, 0x4d, 0x26, + 0x6b, 0xf4, 0x82, 0xc2, 0x13, 0xd0, 0x64, 0xa0, 0xc9, 0x40, 0x93, 0x81, 0x26, 0x03, 0x4d, 0x06, + 0x9a, 0x0c, 0x34, 0x99, 0xb4, 0x51, 0xcd, 0xbe, 0x14, 0x9e, 0x90, 0xae, 0x8e, 0x50, 0x20, 0xad, + 0x3b, 0x11, 0xb0, 0x54, 0x95, 0x9d, 0x08, 0x99, 0xc4, 0xdb, 0x68, 0xb3, 0x25, 0x27, 0x86, 0x0d, + 0xc8, 0x95, 0x9b, 0x28, 0xa1, 0xdc, 0xc4, 0x2e, 0x48, 0x73, 0x1f, 0xcb, 0x4d, 0x48, 0x73, 0x64, + 0x34, 0xfe, 0xcc, 0xeb, 0x77, 0x59, 0x30, 0x72, 0x65, 0x12, 0x83, 0x3f, 0x51, 0xbe, 0xaa, 0x12, + 0xd7, 0xd6, 0xbd, 0x7e, 0x77, 0x70, 0xf3, 0x3f, 0x53, 0xe0, 0x32, 0x42, 0x16, 0x38, 0xa6, 0x6b, + 0x78, 0xbe, 0xbc, 0xd3, 0x98, 0x36, 0x01, 0xb7, 0x01, 0xb7, 0x91, 0x73, 0xb7, 0x11, 0xf2, 0xc0, + 0xf1, 0x5e, 0x54, 0x3c, 0x86, 0x44, 0xaa, 0x59, 0xbc, 0x61, 0xde, 0xcb, 0x10, 0x99, 0xe4, 0x72, + 0x42, 0x85, 0x74, 0x9b, 0x22, 0x07, 0x24, 0x4a, 0x3c, 0xa6, 0x09, 0x87, 0x62, 0x3b, 0x84, 0x59, + 0x85, 0x42, 0x8e, 0x47, 0x92, 0xdb, 0x91, 0x77, 0xed, 0x49, 0x8a, 0xfa, 0x36, 0xa1, 0x8c, 0xe9, + 0x29, 0x0d, 0x61, 0xd8, 0xf7, 0x18, 0x37, 0x42, 0xfb, 0xd5, 0x18, 0xe4, 0x3c, 0xae, 0x63, 0x7a, + 0x16, 0x33, 0x2c, 0xdf, 0x66, 0x0a, 0x61, 0x79, 0x6d, 0x93, 0x08, 0xd3, 0x08, 0xd3, 0x39, 0x0f, + 0xd3, 0x8e, 0xcd, 0x3c, 0xee, 0xf0, 0xf7, 0x80, 0x75, 0x54, 0x62, 0xb5, 0x84, 0x8e, 0x55, 0xbc, + 0x1e, 0x7f, 0xf5, 0x85, 0x19, 0x12, 0x2c, 0x13, 0x35, 0xef, 0xef, 0xea, 0xad, 0x76, 0xad, 0xd1, + 0xb8, 0xb9, 0xbe, 0xac, 0xb5, 0xae, 0xef, 0xef, 0xda, 0x97, 0xf7, 0x57, 0x75, 0xd9, 0xb9, 0x34, + 0x74, 0xf3, 0xa1, 0x92, 0xb6, 0xac, 0x18, 0xaf, 0xe6, 0x9f, 0xeb, 0xdb, 0xdd, 0x55, 0xfd, 0xf3, + 0xf5, 0x5d, 0xfd, 0xaa, 0xb8, 0x8b, 0x08, 0x4c, 0xf4, 0x28, 0xff, 0x6c, 0x3e, 0x54, 0x4a, 0xa5, + 0x52, 0xfb, 0xe8, 0xe1, 0x28, 0x1f, 0x8f, 0x71, 0x9c, 0x8f, 0xc7, 0xa8, 0x24, 0xbd, 0x28, 0xf6, + 0xa4, 0xdb, 0x8d, 0x6a, 0x41, 0x8f, 0x37, 0xe6, 0xd9, 0xbe, 0x42, 0x99, 0xda, 0xf1, 0xf5, 0x80, + 0x0a, 0x40, 0x05, 0x72, 0x7f, 0xe4, 0xfe, 0xc8, 0xfd, 0x91, 0xfb, 0x23, 0xf7, 0x17, 0x0f, 0xc0, + 0x46, 0xcf, 0x0c, 0xb8, 0x6a, 0x14, 0x1e, 0x35, 0x82, 0x50, 0x8c, 0x50, 0x8c, 0x50, 0x8c, 0x50, + 0x8c, 0x50, 0x8c, 0x50, 0x8c, 0x50, 0x2c, 0x11, 0x8a, 0x03, 0xf6, 0xa6, 0x1c, 0x89, 0x07, 0x6d, + 0x20, 0x10, 0x23, 0x10, 0x23, 0x10, 0x23, 0x10, 0x23, 0x10, 0x67, 0x35, 0x10, 0x57, 0x10, 0x87, + 0xc9, 0xe2, 0xf0, 0x01, 0xe1, 0x04, 0x92, 0xdd, 0x88, 0x4c, 0xb7, 0x01, 0xb9, 0x28, 0xb2, 0xba, + 0x4f, 0xb3, 0xd9, 0x38, 0x5e, 0xf4, 0xd8, 0xde, 0xcf, 0x9b, 0x3f, 0xb1, 0x65, 0x04, 0x44, 0x7b, + 0x9e, 0xa2, 0xc7, 0x63, 0xf4, 0xb5, 0x7a, 0x1f, 0x6f, 0xee, 0xdd, 0xf5, 0x7d, 0xb6, 0xfa, 0x5f, + 0xd6, 0xf4, 0xe2, 0x80, 0x56, 0x46, 0xaf, 0x0a, 0xad, 0x7d, 0xf3, 0xaf, 0x78, 0xe3, 0x84, 0xbc, + 0xc6, 0xf9, 0xe6, 0x25, 0x99, 0x41, 0x20, 0xaa, 0xbb, 0x6c, 0x80, 0x19, 0x03, 0xb7, 0xe2, 0xf5, + 0x5d, 0xf7, 0xc3, 0xc1, 0x26, 0xd7, 0x1a, 0xff, 0xc3, 0xf7, 0x81, 0xcd, 0x02, 0x66, 0x5f, 0xbc, + 0x8f, 0x3f, 0x2a, 0xf4, 0x7c, 0xb5, 0xfe, 0xcb, 0xe0, 0x6b, 0x98, 0xbd, 0x31, 0x38, 0x6f, 0x9e, + 0x36, 0x11, 0x5c, 0x1c, 0xfa, 0x56, 0x34, 0x49, 0x3e, 0xcd, 0x4c, 0x92, 0x95, 0xbf, 0xde, 0x32, + 0x49, 0x8a, 0x57, 0x2c, 0xb4, 0x02, 0xa7, 0x37, 0x9e, 0xb8, 0xc5, 0x9a, 0x6d, 0x3b, 0xde, 0x4b, + 0xc1, 0xef, 0x71, 0xc7, 0x32, 0xdd, 0x82, 0xf5, 0x6a, 0x7a, 0x1e, 0x73, 0x0b, 0xb6, 0xc9, 0xcd, + 0x02, 0xf7, 0x0b, 0xbd, 0xd7, 0xf7, 0x70, 0xf8, 0x0f, 0x8e, 0xf7, 0xc6, 0x3c, 0xee, 0x07, 0xef, + 0xdb, 0xda, 0x8f, 0x77, 0xe6, 0x62, 0x6c, 0x5a, 0x17, 0xa1, 0xf3, 0xa5, 0x82, 0x10, 0x2c, 0xe8, + 0xc6, 0xb1, 0x19, 0x41, 0xf4, 0x96, 0x46, 0x6d, 0x69, 0xb4, 0x5e, 0x59, 0xaf, 0x61, 0xf0, 0x70, + 0x9a, 0x7d, 0x5c, 0xdc, 0xd3, 0x0c, 0x8b, 0xe3, 0xe9, 0x63, 0x8c, 0xa7, 0x4f, 0xfc, 0xae, 0x8c, + 0x46, 0x6c, 0xa1, 0x81, 0x98, 0xfd, 0xb2, 0x30, 0x99, 0xeb, 0x9e, 0xe5, 0xfa, 0xe1, 0x60, 0x3e, + 0x5b, 0xbe, 0xc7, 0x4d, 0xc7, 0x63, 0x41, 0xa1, 0xe3, 0x07, 0x05, 0xfe, 0xca, 0x0a, 0xae, 0x13, + 0xf2, 0x82, 0xdf, 0x59, 0x9c, 0xe9, 0x71, 0x5f, 0x51, 0x14, 0x3c, 0x4b, 0x54, 0x38, 0x1b, 0x95, + 0xc9, 0x42, 0x25, 0xe7, 0xbb, 0x6a, 0xca, 0xa9, 0x9c, 0x6a, 0x2a, 0xa7, 0x98, 0xf2, 0xf6, 0x20, + 0x48, 0x61, 0xaa, 0xf6, 0x75, 0x20, 0x61, 0x79, 0xe9, 0x09, 0x0a, 0x33, 0xe8, 0x91, 0xfd, 0x80, + 0x20, 0xc8, 0x51, 0x99, 0x8b, 0x09, 0x42, 0xf2, 0x4a, 0x42, 0x61, 0x61, 0xf6, 0x9e, 0x84, 0x43, + 0x82, 0xb8, 0x9e, 0xb6, 0x38, 0x8d, 0x5b, 0x7e, 0xcf, 0x70, 0xd9, 0x1b, 0x73, 0x17, 0xc2, 0x81, + 0xe5, 0x3a, 0xcc, 0xe3, 0x85, 0x9e, 0x1f, 0xf0, 0xa5, 0x39, 0x9e, 0x93, 0x70, 0x20, 0x27, 0x46, + 0xe6, 0x27, 0x22, 0x48, 0x89, 0x8d, 0x3b, 0x0f, 0x0a, 0x2b, 0xff, 0xe5, 0x69, 0x5d, 0x8a, 0x11, + 0x2f, 0x01, 0x95, 0x4d, 0x3c, 0x37, 0x8c, 0xa0, 0x5c, 0x92, 0xb9, 0x7a, 0x1c, 0x96, 0x9f, 0x79, + 0xfe, 0x37, 0x0b, 0xbe, 0x68, 0xdb, 0x53, 0x8b, 0x3d, 0xed, 0x8a, 0x67, 0x14, 0x79, 0xb6, 0xf9, + 0x27, 0x9a, 0xde, 0xf7, 0xcc, 0x3d, 0x8f, 0x4e, 0x82, 0xea, 0x98, 0xd6, 0x70, 0xbb, 0xf1, 0xfc, + 0xfd, 0xce, 0x9f, 0x16, 0x35, 0xfa, 0xcc, 0xc2, 0xd3, 0xae, 0xf6, 0x32, 0x6b, 0xbd, 0xc9, 0x26, + 0xaf, 0x31, 0xeb, 0x1d, 0x9c, 0x55, 0xbb, 0xc1, 0xb7, 0x19, 0x7f, 0x6c, 0x23, 0x8f, 0x6d, 0xcc, + 0x8b, 0x46, 0xeb, 0x74, 0x8a, 0x82, 0xb3, 0x61, 0x5d, 0x24, 0x9a, 0x76, 0xe9, 0xfa, 0xc7, 0x59, + 0xea, 0xfd, 0x75, 0x8f, 0xb3, 0xd9, 0xd5, 0x6f, 0x75, 0xed, 0x71, 0x5c, 0xf9, 0xd6, 0xc1, 0x11, + 0xf5, 0xd0, 0xc2, 0x1e, 0x59, 0xd8, 0x03, 0xc7, 0x19, 0x3c, 0x39, 0x6d, 0x68, 0x1b, 0x5e, 0x14, + 0xad, 0x49, 0x8f, 0xc7, 0x44, 0xe5, 0xf1, 0xe7, 0xb3, 0xc1, 0xa9, 0x4e, 0x27, 0x97, 0x78, 0xba, + 0x69, 0x7a, 0x24, 0x4c, 0xa5, 0xf6, 0x1c, 0x25, 0x0a, 0x52, 0xe9, 0xec, 0xc5, 0x62, 0xa8, 0x58, + 0x4a, 0x29, 0x2a, 0x3a, 0x9d, 0xbd, 0x24, 0xc4, 0x38, 0x13, 0x52, 0xcf, 0x9a, 0x8d, 0xf0, 0x6a, + 0xb3, 0xfc, 0x2a, 0xf3, 0x74, 0x75, 0x99, 0x0a, 0x6d, 0x63, 0xf8, 0x26, 0xe6, 0x99, 0xcf, 0xee, + 0x50, 0xf9, 0x16, 0xb4, 0xad, 0xc9, 0x85, 0xb1, 0xb3, 0xbd, 0x8e, 0xd9, 0x77, 0xf9, 0x28, 0x57, + 0xec, 0x33, 0x98, 0x23, 0xcc, 0x31, 0x59, 0x73, 0x7c, 0xf6, 0x7d, 0x97, 0x99, 0x9e, 0x8c, 0x3d, + 0x96, 0x13, 0xb4, 0x47, 0xd7, 0xf7, 0x7b, 0xcf, 0xa6, 0xf5, 0xdd, 0xe8, 0x8a, 0xbc, 0x48, 0x1d, + 0x3d, 0xe5, 0xfc, 0xe5, 0xe2, 0xb6, 0xd9, 0x31, 0xdd, 0x10, 0xc6, 0x09, 0xe3, 0x84, 0x71, 0xae, + 0xfa, 0xce, 0x2e, 0xef, 0x8b, 0x9b, 0xe4, 0xe0, 0x22, 0x18, 0x14, 0x0c, 0x2a, 0x51, 0x83, 0xea, + 0x3b, 0x1e, 0x2f, 0x9f, 0x48, 0xd8, 0x93, 0xc0, 0x26, 0x6e, 0xc9, 0xa2, 0xaf, 0x12, 0x1b, 0x37, + 0x55, 0x36, 0x30, 0xaa, 0x16, 0x9d, 0x56, 0x2c, 0xda, 0x4a, 0xb1, 0x9b, 0x4e, 0xa6, 0xe8, 0xb7, + 0xca, 0xc6, 0x44, 0xaa, 0x2e, 0x3b, 0x39, 0x3e, 0x3e, 0x3a, 0xde, 0x61, 0xb7, 0x69, 0xda, 0x14, + 0xf8, 0x94, 0x60, 0xc4, 0x19, 0x4b, 0xdb, 0x82, 0x21, 0x67, 0xc3, 0x4e, 0x2d, 0xc4, 0x1c, 0xc4, + 0x9c, 0xbd, 0x16, 0x3c, 0xb8, 0xc8, 0xf3, 0x4d, 0xd7, 0xb7, 0x07, 0x57, 0xc1, 0xa2, 0x60, 0x51, + 0x89, 0x5a, 0x94, 0x5c, 0x45, 0x28, 0x99, 0x4a, 0x50, 0x6a, 0x15, 0xa0, 0x96, 0x97, 0xe7, 0x86, + 0x27, 0x3c, 0xa4, 0x6e, 0x31, 0x7f, 0xcb, 0xa2, 0x44, 0xfd, 0x07, 0x8f, 0x57, 0x67, 0x4a, 0x7c, + 0x1d, 0xc7, 0xb7, 0x0c, 0xf6, 0x83, 0x7f, 0xe2, 0xcc, 0x65, 0x5d, 0xc6, 0x83, 0x77, 0xc3, 0xf7, + 0x86, 0xdb, 0x27, 0x5f, 0x98, 0xdc, 0xda, 0xce, 0x50, 0xa7, 0x91, 0x58, 0xdc, 0x51, 0x5d, 0xd7, + 0x79, 0x4a, 0x6c, 0xa3, 0xfd, 0x74, 0x9d, 0xfd, 0x70, 0xd5, 0x8f, 0x87, 0xb1, 0xd6, 0x09, 0x0b, + 0x9b, 0x36, 0x09, 0x5c, 0x47, 0xcd, 0xb6, 0x57, 0xfd, 0xd8, 0x1e, 0x3b, 0x66, 0xfa, 0x4d, 0x83, + 0x45, 0xc6, 0x5f, 0x59, 0xe0, 0x31, 0x1e, 0x7f, 0x55, 0x34, 0xba, 0x22, 0x1b, 0xeb, 0xa2, 0x8c, + 0xbf, 0xe6, 0x72, 0x61, 0x74, 0xf0, 0x5c, 0x69, 0x59, 0x19, 0x8d, 0xb9, 0xb0, 0xbe, 0x34, 0x3c, + 0xb1, 0x0d, 0xa7, 0x90, 0x81, 0xad, 0x73, 0xf1, 0x26, 0x5a, 0xfe, 0x68, 0x26, 0xd6, 0x44, 0xd4, + 0x83, 0x33, 0x71, 0x27, 0x68, 0x74, 0x81, 0xd9, 0xe7, 0xbe, 0xe1, 0xb1, 0x17, 0x9f, 0x3b, 0x26, + 0x57, 0x80, 0x8b, 0x85, 0x76, 0x04, 0x3b, 0x50, 0x6e, 0x01, 0x52, 0x51, 0x12, 0xd9, 0xf9, 0x7b, + 0xee, 0x62, 0xf6, 0xa1, 0x6a, 0x27, 0x64, 0xf6, 0x42, 0x66, 0x37, 0x24, 0xf6, 0x23, 0x29, 0x28, + 0x25, 0xfe, 0x5e, 0xbb, 0xf8, 0x2a, 0xca, 0x92, 0x9b, 0x2f, 0xa7, 0xa0, 0xa0, 0x85, 0xdd, 0xef, + 0xb9, 0xec, 0x87, 0xd8, 0x02, 0xe8, 0x52, 0x5f, 0xcc, 0x36, 0x02, 0x53, 0x87, 0xa9, 0xe7, 0xcc, + 0xd4, 0x71, 0x12, 0x4c, 0x61, 0xba, 0x7b, 0xc9, 0xe8, 0xb8, 0xfe, 0x5f, 0x86, 0xe5, 0x7b, 0x3c, + 0xf0, 0x5d, 0x79, 0x97, 0xb1, 0xaa, 0x31, 0x79, 0xc8, 0x10, 0xd9, 0x49, 0x01, 0xd7, 0x03, 0xd7, + 0x03, 0xca, 0x48, 0xd6, 0x75, 0x74, 0x4d, 0xcb, 0x30, 0x6d, 0x3b, 0x60, 0x61, 0x28, 0xef, 0x32, + 0x66, 0x1b, 0x81, 0xa9, 0xc3, 0xd4, 0x73, 0x66, 0xea, 0xf2, 0xd3, 0xbb, 0xa0, 0x5a, 0x2d, 0xab, + 0x61, 0x72, 0xce, 0x02, 0x4f, 0xba, 0x5c, 0x56, 0xf1, 0xbf, 0xff, 0x2c, 0x19, 0xe7, 0xa6, 0xd1, + 0xa9, 0x19, 0x9f, 0x9f, 0xfe, 0xae, 0xfc, 0xfc, 0xe5, 0xd3, 0xfc, 0xdf, 0x7f, 0xfd, 0xfb, 0xf8, + 0xe7, 0x7f, 0x14, 0x33, 0x59, 0xf0, 0xaf, 0xe7, 0x07, 0xdc, 0x08, 0x7b, 0x4c, 0x60, 0xd7, 0xf6, + 0xd2, 0xc8, 0xce, 0xb4, 0x01, 0xbf, 0x05, 0xbf, 0x95, 0x33, 0xbf, 0x95, 0x9b, 0x93, 0x74, 0xea, + 0xad, 0xaf, 0xf5, 0x87, 0xbb, 0x7a, 0xab, 0xdd, 0x6c, 0xd4, 0xeb, 0x57, 0x39, 0x38, 0x41, 0x67, + 0xf0, 0x18, 0xed, 0x72, 0xa9, 0xf4, 0xe5, 0x22, 0xcb, 0xe7, 0xb5, 0x8c, 0x1e, 0xe3, 0x38, 0x17, + 0x4f, 0x51, 0x2e, 0x95, 0x6e, 0xf3, 0xf0, 0x18, 0x79, 0x18, 0x8b, 0xca, 0x71, 0x3e, 0x66, 0x54, + 0x2e, 0x26, 0x54, 0x2e, 0xac, 0xfb, 0xdb, 0xdd, 0x6f, 0x77, 0xf7, 0xbf, 0xdf, 0xe5, 0xc0, 0xd9, + 0xe6, 0xc3, 0xbe, 0xf3, 0xe1, 0x6c, 0xab, 0x6a, 0xb6, 0x91, 0xf5, 0x83, 0xca, 0x52, 0x5e, 0x14, + 0x76, 0xdb, 0xce, 0xa9, 0xc9, 0x5e, 0xa2, 0x43, 0xa1, 0x9d, 0x20, 0x05, 0x95, 0xad, 0x54, 0xf5, + 0xf1, 0x57, 0xc6, 0xda, 0x53, 0x15, 0xbf, 0x9f, 0x7f, 0xc6, 0xda, 0xfd, 0x25, 0xb2, 0xe9, 0x60, + 0x66, 0x33, 0x73, 0xfc, 0x3d, 0x06, 0xd2, 0x9b, 0x64, 0x2a, 0xd8, 0x24, 0x43, 0x99, 0xe3, 0x62, + 0x93, 0x0c, 0x36, 0xc9, 0x40, 0x1b, 0x82, 0x36, 0xb4, 0x71, 0xbc, 0x73, 0xb2, 0x7c, 0x65, 0xf9, + 0xfd, 0x41, 0x74, 0x55, 0x58, 0xbb, 0x8a, 0x5a, 0x90, 0x33, 0xf2, 0x32, 0x8c, 0x1c, 0x46, 0xae, + 0xc7, 0xc8, 0x45, 0x83, 0x67, 0x74, 0xa1, 0xe3, 0x19, 0x67, 0xa5, 0x4a, 0xf9, 0x7f, 0x8c, 0x4e, + 0x60, 0x76, 0x59, 0xa8, 0xae, 0xbf, 0x2e, 0x36, 0xf8, 0x61, 0x27, 0xef, 0xd3, 0xca, 0x9a, 0x0e, + 0x85, 0x09, 0xd1, 0x99, 0x12, 0x95, 0x49, 0x91, 0x9b, 0x16, 0xb9, 0x89, 0x91, 0x9a, 0x9a, 0x5a, + 0xd6, 0x2c, 0xa9, 0x18, 0xc8, 0xc7, 0xd9, 0x75, 0x61, 0xe6, 0xa4, 0xaa, 0x32, 0x65, 0xc6, 0x06, + 0x74, 0xa6, 0xd0, 0x84, 0x5c, 0xb1, 0x02, 0x5a, 0x19, 0xa5, 0x40, 0x75, 0x1a, 0x13, 0x91, 0x67, + 0x59, 0x6a, 0x4e, 0xb1, 0xd8, 0xc1, 0x52, 0x7b, 0x84, 0x47, 0x09, 0x11, 0x68, 0x60, 0xd3, 0x21, + 0x20, 0x38, 0xb5, 0x49, 0xf7, 0x10, 0x94, 0xcf, 0xaa, 0xd5, 0x93, 0xd3, 0x6a, 0xb5, 0x74, 0x7a, + 0x74, 0x5a, 0x3a, 0x3f, 0x3e, 0x2e, 0x9f, 0x94, 0x8f, 0x53, 0x3c, 0x2a, 0x07, 0xbb, 0xb9, 0xfa, + 0x29, 0xa1, 0x03, 0xa6, 0x64, 0x4a, 0x70, 0x38, 0x9e, 0xf1, 0xec, 0xfa, 0xd6, 0x77, 0x83, 0x05, + 0x81, 0x1f, 0xd0, 0xd0, 0xc8, 0x5c, 0x83, 0xa0, 0x11, 0xd0, 0x08, 0x68, 0x04, 0x34, 0x02, 0x1a, + 0x01, 0x8d, 0x80, 0x46, 0x40, 0x23, 0xdb, 0x68, 0xc4, 0x0a, 0x2c, 0x4a, 0x16, 0x99, 0x69, 0x0e, + 0x24, 0x02, 0x12, 0x01, 0x89, 0x80, 0x44, 0x40, 0x22, 0x20, 0x11, 0x90, 0x08, 0x48, 0x64, 0x1b, + 0x89, 0x74, 0x02, 0x73, 0x78, 0xe4, 0x2e, 0xe5, 0x42, 0xcd, 0x62, 0x9b, 0x60, 0x12, 0x30, 0x09, + 0x98, 0x04, 0x4c, 0x02, 0x26, 0x01, 0x93, 0x80, 0x49, 0xc0, 0x24, 0xdb, 0x98, 0xe4, 0xff, 0x9a, + 0xcf, 0xcf, 0x2c, 0xa0, 0x24, 0x92, 0xf9, 0x16, 0xc1, 0x23, 0xe0, 0x11, 0xf0, 0x08, 0x78, 0x04, + 0x3c, 0x02, 0x1e, 0x01, 0x8f, 0x80, 0x47, 0xb6, 0xf1, 0x48, 0xd7, 0xb4, 0x26, 0x65, 0xc8, 0x28, + 0xa1, 0x64, 0x45, 0xb3, 0x20, 0x13, 0x90, 0x09, 0xc8, 0x04, 0x64, 0x02, 0x32, 0x01, 0x99, 0x80, + 0x4c, 0x40, 0x26, 0x71, 0xc8, 0xa4, 0x67, 0xf6, 0x43, 0x46, 0xcd, 0x25, 0x73, 0x8d, 0x82, 0x4a, + 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0x04, 0x54, 0x02, 0x2a, 0x01, 0x95, 0x6c, 0xa3, 0x12, + 0xff, 0x8d, 0x05, 0xa1, 0xf3, 0x6f, 0x52, 0x28, 0x59, 0x6c, 0x13, 0x4c, 0x02, 0x26, 0x01, 0x93, + 0x80, 0x49, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0x64, 0x1b, 0x93, 0xf4, 0x3d, 0x9b, 0x1e, + 0x4a, 0x96, 0x1a, 0x05, 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0x04, 0x54, + 0x02, 0x2a, 0xd9, 0xd8, 0xcd, 0x7e, 0x9f, 0x13, 0x17, 0x49, 0x5b, 0x6a, 0x11, 0x3c, 0x02, 0x1e, + 0x01, 0x8f, 0x80, 0x47, 0xc0, 0x23, 0xe0, 0x11, 0xf0, 0x08, 0x78, 0x64, 0x2b, 0x8f, 0xe8, 0xd8, + 0xea, 0xba, 0xa6, 0x5d, 0xb0, 0x09, 0xd8, 0x04, 0x6c, 0x02, 0x36, 0x01, 0x9b, 0x80, 0x4d, 0xc0, + 0x26, 0x60, 0x93, 0x58, 0x6c, 0x42, 0xbb, 0xd9, 0x75, 0x65, 0xab, 0xe0, 0x12, 0x70, 0x09, 0xb8, + 0x04, 0x5c, 0x02, 0x2e, 0x01, 0x97, 0x80, 0x4b, 0xf6, 0x89, 0x4b, 0xb4, 0x1e, 0xa5, 0x23, 0x79, + 0xba, 0x64, 0x74, 0x3d, 0xc1, 0x29, 0x93, 0xc3, 0x93, 0x14, 0x0f, 0x25, 0x4f, 0x9b, 0x2a, 0x90, + 0x9c, 0x3a, 0xd9, 0x1c, 0xdc, 0x42, 0xfb, 0x72, 0x72, 0x0b, 0x29, 0x38, 0xbe, 0xcb, 0xee, 0xf7, + 0x5c, 0xf6, 0xc3, 0xe8, 0xfa, 0xb6, 0xc2, 0x59, 0x7f, 0xb3, 0x8d, 0xe0, 0xa4, 0x3e, 0x7d, 0x5c, + 0x88, 0x43, 0xbc, 0x76, 0x72, 0x52, 0x1f, 0xf3, 0xfa, 0x5d, 0x16, 0x8c, 0x9c, 0x97, 0xc2, 0x69, + 0x7d, 0x55, 0x89, 0x6b, 0xeb, 0x5e, 0xbf, 0x3b, 0xb8, 0xf9, 0x9f, 0x29, 0x70, 0x15, 0xcc, 0x33, + 0x9f, 0x5d, 0x66, 0x74, 0x5c, 0xff, 0xaf, 0x89, 0x98, 0x2d, 0xef, 0x32, 0x56, 0x35, 0x26, 0x7f, + 0x46, 0x68, 0xc7, 0x74, 0x43, 0xb8, 0x1e, 0xb8, 0x1e, 0x1c, 0x12, 0xba, 0xec, 0x76, 0xd2, 0x70, + 0x48, 0xe8, 0xeb, 0x5f, 0x43, 0xa1, 0xc9, 0xb4, 0xed, 0x80, 0x85, 0x0a, 0x47, 0x85, 0x2e, 0xb4, + 0x03, 0x83, 0x87, 0xc1, 0xe7, 0xcc, 0xe0, 0xe5, 0xa7, 0xf7, 0x9c, 0xd1, 0x4b, 0xc8, 0x48, 0xc5, + 0x86, 0xc9, 0x39, 0x0b, 0x3c, 0x69, 0x01, 0xa9, 0xf8, 0xdf, 0x7f, 0x96, 0x8c, 0x73, 0xd3, 0xe8, + 0xd4, 0x8c, 0xcf, 0x4f, 0x7f, 0x57, 0x7e, 0xfe, 0xf2, 0x69, 0xfe, 0xef, 0xbf, 0xfe, 0x7d, 0xfc, + 0xf3, 0x3f, 0xc4, 0x47, 0xec, 0x29, 0x05, 0xfe, 0x8b, 0xc4, 0x79, 0xc1, 0x73, 0xc1, 0x73, 0xc1, + 0x73, 0xc1, 0x73, 0x25, 0xea, 0xb9, 0x3c, 0xf6, 0xe2, 0x73, 0xc7, 0xe4, 0xcc, 0x36, 0x48, 0xa4, + 0x9e, 0x35, 0xed, 0xc1, 0x9f, 0xc1, 0x9f, 0x41, 0xf5, 0xc9, 0xa3, 0xea, 0x33, 0x63, 0xf0, 0x3d, + 0x3f, 0xe0, 0x46, 0xd8, 0x63, 0xcc, 0x26, 0xf1, 0x1f, 0x33, 0xcd, 0xc1, 0x7d, 0xc0, 0x7d, 0xe4, + 0xcc, 0x7d, 0x38, 0x36, 0xf3, 0xb8, 0xc3, 0xdf, 0x03, 0xd6, 0x51, 0x71, 0x1f, 0x12, 0x0b, 0xa2, + 0xc5, 0xeb, 0xf1, 0x57, 0x5f, 0x98, 0x21, 0x53, 0xdf, 0x25, 0x54, 0x6f, 0x7d, 0xad, 0x3f, 0xdc, + 0xd5, 0x5b, 0xed, 0x66, 0xa3, 0x5e, 0xbf, 0x92, 0x9d, 0x3b, 0xc3, 0x35, 0xdf, 0x50, 0x69, 0x73, + 0x82, 0xe2, 0x5e, 0x9a, 0xc9, 0xf3, 0x0c, 0x1f, 0xa3, 0x5d, 0x2e, 0x95, 0xbe, 0x5c, 0x28, 0x6c, + 0x55, 0xf9, 0x90, 0x8e, 0xc7, 0x38, 0xce, 0xc5, 0x53, 0x94, 0x4b, 0xa5, 0xdb, 0x3c, 0x3c, 0x46, + 0x1e, 0xc6, 0xa2, 0x72, 0x9c, 0x8f, 0x19, 0x95, 0x8b, 0x09, 0x95, 0x0b, 0xeb, 0xfe, 0x76, 0xf7, + 0xdb, 0xdd, 0xfd, 0xef, 0x77, 0x39, 0x70, 0xb6, 0xf9, 0xb0, 0xef, 0x7c, 0x38, 0xdb, 0xaa, 0x9a, + 0x6d, 0x48, 0x5d, 0xf9, 0xa4, 0x9b, 0x52, 0xb5, 0x64, 0x70, 0x14, 0x69, 0x1b, 0x72, 0x35, 0xe4, + 0x6a, 0xc8, 0xd5, 0x90, 0xab, 0x21, 0x57, 0x43, 0xae, 0x86, 0x5c, 0x0d, 0xb9, 0x1a, 0x72, 0x35, + 0xe4, 0x6a, 0xc8, 0xd5, 0x90, 0xab, 0x21, 0x57, 0xa3, 0xfa, 0x64, 0xcc, 0xb1, 0x92, 0x7d, 0x91, + 0x86, 0xec, 0x05, 0x1a, 0x01, 0xa8, 0x24, 0x7a, 0x5f, 0x26, 0xde, 0xcc, 0xd9, 0xde, 0xcb, 0x9b, + 0x3f, 0xb1, 0xa5, 0xff, 0x45, 0xfb, 0x9d, 0xa0, 0xbf, 0x63, 0xf4, 0xb4, 0x72, 0x0f, 0x6f, 0xee, + 0xdb, 0xf5, 0x3d, 0xb6, 0xa1, 0xb7, 0x8a, 0xaf, 0xbe, 0x6b, 0x1b, 0xdc, 0xe9, 0x6e, 0xcf, 0x67, + 0xa6, 0xfb, 0x7a, 0xa3, 0x4b, 0xb6, 0x8c, 0xc2, 0x24, 0xd5, 0xda, 0xf2, 0xb1, 0xb8, 0xea, 0x81, + 0x88, 0x5a, 0x30, 0xab, 0x0e, 0x38, 0x71, 0xf2, 0x44, 0x51, 0x31, 0x40, 0x3a, 0xf9, 0x97, 0x4e, + 0xf6, 0x17, 0x93, 0x7b, 0xa7, 0x53, 0xd4, 0x6c, 0x45, 0x57, 0x4e, 0x10, 0xaf, 0xb3, 0xad, 0xc9, + 0x08, 0xc6, 0xec, 0xbb, 0xe9, 0xbb, 0xd8, 0xc3, 0xeb, 0x62, 0x3e, 0x7f, 0xbc, 0xe9, 0x24, 0x2d, + 0x4a, 0xc9, 0x88, 0x51, 0xc2, 0xd3, 0x4c, 0x55, 0x7b, 0x52, 0xd6, 0x9c, 0x94, 0xb5, 0x26, 0x99, + 0x69, 0xa8, 0x27, 0xb8, 0xc6, 0x9d, 0x9e, 0xd1, 0x05, 0xb6, 0xff, 0x97, 0xa7, 0xf0, 0xde, 0xe4, + 0xe0, 0x6a, 0xf9, 0xb7, 0x9e, 0x4a, 0x7b, 0xa2, 0xc5, 0x3a, 0x1d, 0x48, 0xb1, 0x8a, 0x66, 0x92, + 0x15, 0x25, 0xb6, 0xef, 0x78, 0xfc, 0xa8, 0xa2, 0x20, 0xc2, 0x9e, 0x4a, 0x5c, 0xaa, 0x56, 0x37, + 0x43, 0xa1, 0x80, 0x08, 0x45, 0x9d, 0x0c, 0xa2, 0xe2, 0x0c, 0x54, 0x75, 0x31, 0x28, 0x2b, 0x2f, + 0x28, 0xa4, 0xaf, 0x24, 0xf5, 0x2f, 0xa8, 0xbb, 0xb6, 0x5a, 0x39, 0xaf, 0x9e, 0x9f, 0x9c, 0x56, + 0xce, 0x8f, 0x53, 0xd4, 0xc7, 0x09, 0x55, 0x97, 0x48, 0xc3, 0x5e, 0xf8, 0x7e, 0x4f, 0x3e, 0x54, + 0xf7, 0x7b, 0x08, 0xd4, 0x08, 0xd4, 0x08, 0xd4, 0x08, 0xd4, 0x08, 0xd4, 0x08, 0xd4, 0x08, 0xd4, + 0xe2, 0x81, 0x9a, 0x34, 0x51, 0xaf, 0xff, 0xe0, 0x62, 0x1b, 0x14, 0xe4, 0x35, 0x11, 0xdf, 0x32, + 0xd8, 0x0f, 0xfe, 0x89, 0x33, 0x97, 0x75, 0x19, 0x0f, 0xde, 0x0d, 0xdf, 0x33, 0xac, 0xd7, 0xa1, + 0x27, 0x52, 0xd2, 0x49, 0x86, 0x35, 0x4b, 0x14, 0x84, 0x12, 0x6a, 0x8d, 0xe4, 0x29, 0xb5, 0x0b, + 0x10, 0x91, 0x3a, 0x7c, 0x28, 0xa4, 0xee, 0x15, 0x54, 0x04, 0xf2, 0xaf, 0xbe, 0x6b, 0xb7, 0x9c, + 0x2e, 0x6b, 0x8f, 0x99, 0x8a, 0x6a, 0x0d, 0x22, 0x96, 0xa6, 0x6f, 0x72, 0x26, 0xae, 0x7c, 0x8a, + 0xac, 0xce, 0x48, 0x0b, 0x9f, 0x15, 0x08, 0x9f, 0x10, 0x3e, 0x21, 0x7c, 0x22, 0x9f, 0x42, 0x3e, + 0x85, 0x7c, 0x0a, 0xf9, 0x14, 0xf2, 0x29, 0xe4, 0x53, 0x10, 0x3e, 0x11, 0xa8, 0x11, 0xa8, 0x11, + 0xa8, 0x11, 0xa8, 0x11, 0xa8, 0x11, 0xa8, 0x11, 0xa8, 0xf5, 0x26, 0xea, 0xbb, 0x54, 0xdf, 0x12, + 0xdb, 0xff, 0x1b, 0x89, 0x6f, 0x7b, 0xb9, 0xff, 0x37, 0xee, 0x66, 0x58, 0x92, 0x2e, 0xd6, 0xb1, + 0x01, 0x78, 0x7c, 0x37, 0x31, 0xf7, 0xfe, 0x0e, 0x3f, 0x1d, 0x6f, 0xdb, 0x6f, 0x09, 0xdb, 0x7e, + 0x29, 0xb0, 0x2d, 0xf9, 0x6d, 0xbf, 0xb1, 0xb1, 0x2b, 0xea, 0x6d, 0x97, 0x99, 0x9d, 0x78, 0xaf, + 0xe3, 0x46, 0x5a, 0x76, 0x0c, 0xb0, 0x2a, 0x36, 0xc6, 0xf6, 0xf8, 0xf1, 0xe3, 0x78, 0x2d, 0xe1, + 0x70, 0x38, 0xfd, 0x34, 0x18, 0x41, 0x3c, 0x15, 0x5f, 0x48, 0xbd, 0x17, 0xde, 0xfd, 0x5e, 0x81, + 0x19, 0xa4, 0xca, 0x0c, 0x62, 0xef, 0x7e, 0x37, 0xed, 0xae, 0xe3, 0x19, 0x83, 0x39, 0xd1, 0x0f, + 0xc5, 0x57, 0x82, 0xe6, 0xae, 0x16, 0x5b, 0x10, 0x2a, 0x61, 0x27, 0x3c, 0x16, 0x84, 0xa4, 0x12, + 0x65, 0xc5, 0xba, 0x99, 0x32, 0xf5, 0x32, 0x05, 0xeb, 0x64, 0x62, 0x6f, 0x41, 0xec, 0xa9, 0x47, + 0xbe, 0xb7, 0x80, 0x64, 0x61, 0x3c, 0x3a, 0xba, 0x4b, 0xe2, 0xad, 0x20, 0xa1, 0x43, 0xbf, 0xf0, + 0x5e, 0x10, 0xbc, 0xa1, 0x54, 0xe0, 0x9e, 0x4e, 0x55, 0x33, 0x08, 0x1c, 0x16, 0x18, 0x3c, 0x30, + 0xbd, 0xd0, 0x19, 0xf8, 0x42, 0x85, 0x83, 0x03, 0x56, 0x35, 0x06, 0x5d, 0x1d, 0xba, 0x7a, 0xae, + 0x74, 0x75, 0x95, 0x43, 0x74, 0x15, 0x0e, 0xcf, 0x85, 0xb4, 0x0e, 0x69, 0x3d, 0x91, 0xae, 0xa5, + 0x3f, 0xec, 0x76, 0x0f, 0x44, 0x76, 0x41, 0x2f, 0x24, 0x4c, 0xee, 0x6a, 0x66, 0xac, 0x85, 0xe4, + 0xe9, 0x88, 0x5e, 0x91, 0xec, 0xe5, 0x06, 0xf9, 0x49, 0xcb, 0x06, 0x06, 0xc7, 0x33, 0x9e, 0x03, + 0xdf, 0xb4, 0x2d, 0x33, 0xe4, 0x46, 0xef, 0x3b, 0x57, 0x80, 0xa9, 0xe5, 0xa6, 0x80, 0x52, 0x40, + 0x29, 0xa0, 0x14, 0x50, 0x0a, 0x28, 0x05, 0x94, 0xc2, 0x7e, 0x05, 0xd1, 0xb8, 0x6c, 0x3b, 0xa1, + 0x65, 0x06, 0xb6, 0x5a, 0x44, 0x8e, 0x1a, 0x41, 0x2c, 0x46, 0x2c, 0x46, 0x2c, 0x46, 0x2c, 0x46, + 0x2c, 0x46, 0x2c, 0x46, 0x2c, 0x16, 0x8d, 0xc5, 0x2c, 0x08, 0xfc, 0x40, 0x2d, 0x12, 0x8f, 0x9b, + 0x40, 0x1c, 0x46, 0x1c, 0x46, 0x1c, 0x46, 0x1c, 0x46, 0x1c, 0x46, 0x1c, 0x46, 0x1c, 0x16, 0x8d, + 0xc3, 0x1d, 0x2b, 0xa4, 0x88, 0xc5, 0x33, 0xcd, 0x20, 0x1e, 0x23, 0x1e, 0x23, 0x1e, 0x23, 0x1e, + 0x23, 0x1e, 0x23, 0x1e, 0x23, 0x1e, 0x8b, 0xc6, 0xe3, 0x6e, 0xdf, 0xe5, 0x0e, 0xcd, 0xda, 0xf1, + 0x42, 0x53, 0x88, 0xcb, 0x88, 0xcb, 0x88, 0xcb, 0x88, 0xcb, 0x88, 0xcb, 0x88, 0xcb, 0x88, 0xcb, + 0xa2, 0x71, 0xd9, 0xb7, 0x38, 0x53, 0x8c, 0xc7, 0xe3, 0x26, 0x10, 0x87, 0x11, 0x87, 0x11, 0x87, + 0x11, 0x87, 0x11, 0x87, 0x11, 0x87, 0x11, 0x87, 0x45, 0xe3, 0xb0, 0x72, 0x56, 0x8c, 0x5c, 0x18, + 0x31, 0x18, 0x31, 0x18, 0x31, 0x18, 0x31, 0x18, 0x31, 0x18, 0x31, 0x58, 0x2a, 0x06, 0xf7, 0x3d, + 0x22, 0x85, 0x7a, 0xae, 0x21, 0xc4, 0x64, 0xc4, 0x64, 0xc4, 0x64, 0xc4, 0x64, 0xc4, 0x64, 0xc4, + 0x64, 0xc4, 0x64, 0xf1, 0x98, 0xfc, 0xdd, 0xf3, 0xff, 0xf2, 0x8c, 0x5e, 0xe0, 0x73, 0x5f, 0x35, + 0x2a, 0xcf, 0x35, 0x85, 0xb8, 0x8c, 0xb8, 0x8c, 0xb8, 0x8c, 0xb8, 0x8c, 0xb8, 0x8c, 0xb8, 0x8c, + 0xb8, 0x2c, 0x14, 0x97, 0xdd, 0x41, 0x72, 0x6b, 0xb9, 0xcc, 0x0c, 0xe4, 0x03, 0xf2, 0x4c, 0x1b, + 0x88, 0xc4, 0x88, 0xc4, 0xb9, 0x8a, 0xc4, 0xdc, 0xe9, 0x32, 0xee, 0x58, 0xdf, 0xc3, 0xc4, 0x63, + 0xf1, 0x37, 0x6f, 0xe4, 0xc7, 0x8a, 0x9e, 0xe9, 0xf9, 0x21, 0xb3, 0x7c, 0x4f, 0xf8, 0x8d, 0x7e, + 0xc4, 0x74, 0xc4, 0x74, 0xc4, 0xf4, 0x34, 0xc7, 0x74, 0x94, 0x64, 0x43, 0x49, 0xb6, 0xc1, 0x13, + 0xf8, 0x7d, 0x4e, 0x56, 0x93, 0x6d, 0x45, 0x5b, 0xc0, 0x32, 0x60, 0x19, 0x04, 0x12, 0x08, 0x24, + 0x80, 0x29, 0xc0, 0x14, 0x04, 0x12, 0xe1, 0xc8, 0xac, 0x5e, 0x95, 0x6d, 0xae, 0x15, 0x44, 0x63, + 0x44, 0x63, 0x44, 0x63, 0x44, 0x63, 0x44, 0x63, 0x44, 0x63, 0x44, 0x63, 0xe1, 0x68, 0xac, 0x5a, + 0x0b, 0x66, 0xa6, 0x0d, 0x44, 0x62, 0x44, 0x62, 0x44, 0x62, 0x44, 0x62, 0x44, 0x62, 0x44, 0x62, + 0x44, 0x62, 0xe1, 0x48, 0x4c, 0x55, 0x09, 0x66, 0x45, 0x5b, 0x88, 0xcc, 0x88, 0xcc, 0x88, 0xcc, + 0x88, 0xcc, 0x88, 0xcc, 0x88, 0xcc, 0x88, 0xcc, 0xc2, 0x91, 0x59, 0xb5, 0x16, 0xcc, 0x4c, 0x1b, + 0x88, 0xc4, 0x88, 0xc4, 0x88, 0xc4, 0x88, 0xc4, 0x88, 0xc4, 0x88, 0xc4, 0x88, 0xc4, 0xc2, 0x91, + 0x58, 0x3d, 0x33, 0x46, 0x3e, 0x8c, 0x28, 0x8c, 0x28, 0x8c, 0x28, 0x8c, 0x28, 0x8c, 0x28, 0x8c, + 0x28, 0x2c, 0x17, 0x85, 0x69, 0xea, 0xc1, 0x2c, 0xb5, 0x84, 0xa8, 0x8c, 0xa8, 0x8c, 0xa8, 0x8c, + 0xa8, 0x8c, 0xa8, 0x8c, 0xa8, 0x8c, 0xa8, 0x1c, 0xf3, 0x93, 0x31, 0xe7, 0x54, 0xb1, 0xe6, 0x79, + 0x3e, 0x37, 0x07, 0x5d, 0x2b, 0x34, 0x8d, 0x8a, 0xa1, 0xf5, 0xca, 0xba, 0x66, 0xcf, 0xe4, 0xaf, + 0x03, 0x8f, 0x76, 0xe8, 0xf7, 0x98, 0x67, 0x0d, 0x23, 0xa8, 0xe1, 0x0c, 0x7c, 0x5b, 0xc7, 0xb4, + 0x58, 0x78, 0xb8, 0xea, 0xc7, 0xc3, 0x90, 0x9b, 0x9c, 0x1d, 0x8e, 0x7d, 0xa0, 0x48, 0x74, 0x2f, + 0x86, 0x3c, 0xe8, 0x5b, 0xdc, 0x1b, 0x7b, 0xd1, 0xfb, 0xe8, 0x2b, 0xaf, 0xa3, 0xaf, 0x69, 0xaf, + 0xfa, 0xb1, 0xdd, 0x1c, 0x7c, 0x63, 0xfb, 0x72, 0xf2, 0x8d, 0x07, 0x34, 0xbd, 0x1c, 0xa3, 0x87, + 0x8b, 0x36, 0x0b, 0xad, 0xc0, 0xe9, 0x09, 0x75, 0x6f, 0x14, 0x26, 0x66, 0x2f, 0x8e, 0x39, 0x9a, + 0x62, 0x86, 0x2c, 0xcc, 0x3c, 0x32, 0xac, 0x23, 0xcd, 0x38, 0xb2, 0x6c, 0xa3, 0xcc, 0x34, 0xca, + 0x2c, 0xa3, 0xc2, 0x30, 0xb4, 0xd6, 0x2d, 0xcc, 0x2a, 0xd1, 0x68, 0x85, 0x3c, 0x70, 0xbc, 0x17, + 0x91, 0xe1, 0x1a, 0xcf, 0xbd, 0xf2, 0x59, 0x82, 0xf6, 0xc5, 0x3c, 0xf3, 0xd9, 0x65, 0xb6, 0xb8, + 0x6d, 0x4d, 0x2e, 0x8c, 0xd9, 0x8f, 0x57, 0xac, 0x63, 0xf6, 0xdd, 0xe1, 0x78, 0x0e, 0xa6, 0x03, + 0xcc, 0x11, 0xe6, 0x98, 0xac, 0x39, 0x3e, 0xfb, 0xbe, 0xcb, 0x4c, 0x4f, 0xc6, 0x1e, 0xcb, 0x09, + 0xda, 0xe3, 0xab, 0x19, 0xd8, 0x7f, 0x99, 0x01, 0x33, 0x7a, 0x7e, 0xc0, 0xc5, 0xad, 0x72, 0xfe, + 0xf2, 0x7c, 0x18, 0x99, 0xc0, 0xa3, 0xe4, 0xcb, 0xcc, 0x86, 0x0f, 0x9e, 0x39, 0x43, 0x73, 0x99, + 0xd9, 0x09, 0x58, 0x47, 0xc6, 0xd0, 0x4e, 0x05, 0xae, 0x69, 0x44, 0xe0, 0x6c, 0x19, 0x3d, 0xd7, + 0xe4, 0x1d, 0x3f, 0xe8, 0x7e, 0xb2, 0xfc, 0x6e, 0xcf, 0xf7, 0x98, 0xc7, 0xc3, 0xd5, 0xbf, 0x9e, + 0xfb, 0xed, 0x10, 0x83, 0x13, 0x34, 0x6d, 0xa7, 0xe3, 0x78, 0x36, 0xfb, 0x21, 0x6e, 0xd4, 0x93, + 0x0b, 0x11, 0x33, 0x11, 0x33, 0x13, 0x35, 0xe5, 0xbe, 0xe3, 0xf1, 0xa3, 0x8a, 0x84, 0x25, 0x8b, + 0x18, 0xb2, 0x9c, 0xa6, 0x26, 0x21, 0x1e, 0xaa, 0x68, 0x68, 0x8a, 0x02, 0x8f, 0xaa, 0x66, 0x46, + 0xa1, 0xde, 0x48, 0x68, 0x64, 0x4a, 0xda, 0x18, 0x55, 0x97, 0x55, 0x2b, 0xe7, 0xd5, 0xf3, 0x93, + 0xd3, 0xca, 0xf9, 0xf1, 0x0e, 0xfb, 0x4e, 0x93, 0x12, 0xf5, 0x44, 0x6a, 0xe8, 0xc2, 0x65, 0x97, + 0xe4, 0x7d, 0x2a, 0x59, 0x99, 0x25, 0xf5, 0xf2, 0x4a, 0x92, 0x65, 0x95, 0xe2, 0x0d, 0xd2, 0x13, + 0x49, 0xe4, 0x1f, 0x55, 0x9e, 0x7c, 0x1d, 0x3b, 0x3a, 0xc1, 0xe8, 0x3f, 0x7b, 0x31, 0x08, 0x00, + 0x04, 0x90, 0x28, 0x01, 0xc8, 0xd5, 0x95, 0x94, 0x58, 0x62, 0x53, 0xad, 0x23, 0x09, 0x8c, 0x00, + 0x46, 0x6c, 0xec, 0x32, 0xba, 0x25, 0x35, 0x00, 0x05, 0x80, 0x62, 0xd7, 0x40, 0xe1, 0xbf, 0x38, + 0x96, 0xe9, 0x4a, 0xc0, 0xc4, 0xf8, 0x42, 0x80, 0x04, 0x40, 0x22, 0x51, 0x90, 0xd0, 0x2f, 0xbf, + 0xc3, 0xa7, 0x65, 0xdd, 0xa7, 0xf9, 0xbd, 0x67, 0xd3, 0xfa, 0x6e, 0x74, 0x7d, 0x5b, 0x26, 0x4d, + 0x9a, 0xbb, 0x5c, 0x7c, 0x55, 0x72, 0xd8, 0xa9, 0xf0, 0x8b, 0xf0, 0x8b, 0x79, 0xf3, 0x8b, 0x24, + 0xc6, 0xd9, 0xe5, 0x7d, 0x71, 0x93, 0x1c, 0x5c, 0x04, 0x83, 0x82, 0x41, 0x25, 0x6a, 0x50, 0x7d, + 0xc7, 0xe3, 0xe5, 0x13, 0x09, 0x7b, 0x3a, 0x81, 0xd8, 0x00, 0xb1, 0x81, 0xa8, 0xcb, 0x4e, 0x8e, + 0x8f, 0x8f, 0xf6, 0x57, 0x5d, 0x20, 0x89, 0x38, 0xe3, 0x4d, 0xaa, 0x82, 0x21, 0x67, 0x78, 0x15, + 0x62, 0x0e, 0x62, 0x4e, 0xa2, 0x31, 0x27, 0x1b, 0x5b, 0x3d, 0xfd, 0x1e, 0x0b, 0x8c, 0x90, 0x9b, + 0xbc, 0x1f, 0x8a, 0x1b, 0xd6, 0xec, 0xc5, 0xb0, 0x2f, 0xd8, 0x57, 0xa2, 0xf6, 0xc5, 0xbc, 0x7e, + 0x97, 0x05, 0xa6, 0xc0, 0x3e, 0xfe, 0x39, 0x23, 0xab, 0x0a, 0x5c, 0x53, 0xf7, 0xfa, 0xdd, 0xc1, + 0x4d, 0xfe, 0x84, 0xe8, 0xb4, 0x0f, 0xa2, 0x53, 0xef, 0xf5, 0x3d, 0x74, 0x2c, 0xd3, 0x1d, 0x76, + 0x91, 0xc7, 0x24, 0x14, 0xf5, 0xa5, 0x16, 0xf2, 0xe1, 0x1d, 0x79, 0x60, 0x7a, 0xa1, 0xc5, 0x9c, + 0x37, 0x16, 0xec, 0xa5, 0x9b, 0x9c, 0x7d, 0x7e, 0x6c, 0xc1, 0x5d, 0x33, 0xc5, 0x64, 0xb6, 0xe0, + 0xfe, 0xb9, 0xb8, 0x05, 0xf7, 0xff, 0xb5, 0xfa, 0x41, 0xc0, 0x3c, 0xfe, 0xcb, 0xaf, 0x87, 0x1f, + 0x3f, 0x1e, 0xce, 0x77, 0xfd, 0xa7, 0x99, 0x9f, 0x9f, 0x36, 0xfc, 0xdb, 0xe2, 0x3f, 0x2d, 0x1a, + 0x65, 0xb8, 0xf8, 0x81, 0xf1, 0xef, 0x17, 0x7f, 0x3d, 0xda, 0x67, 0x4b, 0x3a, 0x8a, 0x37, 0x4e, + 0xc8, 0x6b, 0x9c, 0x8b, 0x9d, 0x5b, 0x3b, 0xc8, 0xfb, 0xeb, 0x03, 0x07, 0xee, 0x0d, 0xe3, 0x86, + 0xd7, 0x77, 0x5d, 0x81, 0x71, 0xb9, 0x35, 0x7f, 0xc8, 0x5f, 0x7c, 0x1f, 0xd8, 0x2c, 0x60, 0xf6, + 0xc5, 0xfb, 0xf8, 0xd2, 0x04, 0x01, 0x75, 0xd6, 0xe6, 0x84, 0xfd, 0xb0, 0xb8, 0xc3, 0x82, 0x0b, + 0x86, 0x0b, 0x86, 0x0b, 0x5e, 0xe9, 0x82, 0x7b, 0x7e, 0xc0, 0x3f, 0xcd, 0xbd, 0x4b, 0xf4, 0x34, + 0xd7, 0x54, 0xd8, 0x7f, 0x5e, 0xf3, 0x25, 0xb3, 0xff, 0xb2, 0xd3, 0xb7, 0x2d, 0xb8, 0xc8, 0xd0, + 0x4d, 0xbd, 0xc8, 0xe0, 0x2a, 0xe4, 0xb7, 0xc8, 0x6f, 0x13, 0x75, 0x16, 0x8e, 0xcd, 0x3c, 0xee, + 0xf0, 0x77, 0x49, 0x87, 0x21, 0xa0, 0x34, 0x17, 0xaf, 0xc7, 0x5f, 0x75, 0x61, 0x86, 0x4c, 0xbe, + 0xc2, 0x50, 0x54, 0x8b, 0xc0, 0x18, 0x1a, 0x0c, 0x75, 0x87, 0x1f, 0xa8, 0x7d, 0x62, 0xcb, 0x80, + 0x15, 0x6b, 0xfd, 0x97, 0xc1, 0x84, 0x19, 0xbe, 0xf5, 0xbc, 0x3d, 0x25, 0x17, 0xf4, 0x20, 0x87, + 0xc3, 0x39, 0xf8, 0x69, 0xa6, 0x70, 0xc3, 0xc2, 0x2f, 0xc6, 0x7f, 0x1f, 0x16, 0x71, 0x88, 0xbf, + 0x4f, 0x61, 0xb6, 0x0a, 0x42, 0xb1, 0x66, 0xdb, 0x61, 0xc1, 0x2c, 0x04, 0xac, 0xc3, 0x02, 0xe6, + 0x59, 0xac, 0xd0, 0x09, 0xfc, 0x6e, 0x81, 0xbf, 0xb2, 0xc2, 0xb3, 0x19, 0xb2, 0x42, 0xf4, 0x55, + 0x05, 0xee, 0x0f, 0x7f, 0x6b, 0xf9, 0x41, 0xc0, 0xc2, 0x9e, 0xef, 0xd9, 0x8e, 0xf7, 0xf2, 0xe8, + 0x0d, 0xfc, 0x79, 0x21, 0xf2, 0xd2, 0x05, 0xc7, 0x1b, 0x7e, 0xc8, 0x66, 0x6f, 0x8e, 0x35, 0xb8, + 0xf8, 0x8d, 0x79, 0xdc, 0x0f, 0xde, 0x3f, 0x0a, 0xfa, 0xc1, 0x32, 0x5e, 0x1f, 0xc5, 0xeb, 0xa3, + 0xd1, 0x84, 0x75, 0x04, 0x13, 0x1e, 0xb9, 0xf7, 0x9e, 0x97, 0xc6, 0x5b, 0xe6, 0xfd, 0xe7, 0x75, + 0x56, 0xf6, 0xd9, 0x0f, 0x0a, 0xde, 0x58, 0x3d, 0xf3, 0x98, 0xeb, 0xfc, 0x9b, 0xd9, 0x53, 0xd3, + 0x0a, 0x3f, 0x4c, 0xcd, 0x2f, 0x1c, 0xda, 0xcf, 0xe4, 0xab, 0x0b, 0x83, 0xaf, 0x7e, 0xf4, 0xe6, + 0x6c, 0x6e, 0x62, 0x88, 0xf3, 0xe6, 0xf9, 0x71, 0x4f, 0x0a, 0xb3, 0x49, 0x8c, 0x45, 0x61, 0x2f, + 0x4a, 0xb3, 0x89, 0x59, 0xa8, 0x98, 0xa5, 0x0a, 0x5a, 0xac, 0x3c, 0xc5, 0x10, 0xa4, 0x3e, 0x2a, + 0x29, 0x90, 0x5a, 0x2a, 0x24, 0x99, 0xa2, 0x88, 0x0f, 0xc5, 0xcf, 0xe4, 0x52, 0x9f, 0xcc, 0x00, + 0x8b, 0xe9, 0x6d, 0x45, 0x95, 0x19, 0x0d, 0x60, 0x4a, 0x2c, 0x79, 0x21, 0x13, 0x08, 0x3c, 0x3b, + 0x17, 0x78, 0x84, 0x39, 0x45, 0x46, 0xa3, 0x24, 0xd0, 0x2a, 0xd7, 0x19, 0x56, 0x23, 0xf0, 0xdf, + 0x1c, 0x9b, 0xcd, 0x1b, 0xd7, 0xd8, 0x94, 0x66, 0x6d, 0x67, 0x56, 0x96, 0x29, 0xf0, 0x57, 0x73, + 0x0e, 0x50, 0xc2, 0xc9, 0x15, 0x13, 0xd9, 0xbc, 0xb0, 0x90, 0x21, 0x74, 0xfc, 0xa0, 0xc0, 0x5f, + 0x9d, 0x70, 0x06, 0x5d, 0x1e, 0xbd, 0xd6, 0x34, 0x67, 0xe8, 0xf6, 0x43, 0x5e, 0xf0, 0x3d, 0xf7, + 0xbd, 0xd0, 0xf3, 0x7b, 0x7d, 0xd7, 0xe4, 0x6c, 0xf4, 0xf1, 0x41, 0x24, 0x28, 0xfc, 0xe5, 0xf0, + 0xd7, 0x85, 0xdb, 0x7b, 0xf4, 0xcc, 0x99, 0xd6, 0xfd, 0x4e, 0x61, 0x90, 0x45, 0x16, 0x5a, 0x0f, + 0xb5, 0xbb, 0xe6, 0x65, 0xfd, 0xfa, 0x9f, 0xf5, 0x87, 0x7d, 0x21, 0x23, 0xf9, 0x89, 0xb0, 0x1f, + 0x80, 0x24, 0xe5, 0x21, 0xc0, 0x49, 0x7b, 0x27, 0x19, 0x83, 0xc7, 0xf4, 0x09, 0x48, 0x0e, 0x0f, + 0x97, 0x04, 0xa4, 0x49, 0x9c, 0x98, 0x2c, 0xaf, 0x82, 0xc8, 0x40, 0x64, 0xbb, 0x22, 0x32, 0xe9, + 0x2d, 0x3c, 0x4b, 0x13, 0x40, 0x72, 0x2b, 0xcf, 0x26, 0xfd, 0xc8, 0x2c, 0xac, 0x54, 0x8f, 0x3e, + 0x14, 0x5c, 0x27, 0x1c, 0x92, 0xcf, 0xac, 0x88, 0x34, 0x84, 0xb0, 0x15, 0xd6, 0x55, 0xf8, 0xc5, + 0x35, 0x3d, 0x16, 0xfe, 0x5a, 0x58, 0xa9, 0x29, 0x2d, 0x32, 0xd9, 0xf2, 0xe5, 0x66, 0xc0, 0x0a, + 0x6c, 0xbc, 0x21, 0x60, 0xf0, 0x9d, 0x66, 0x61, 0x65, 0x5a, 0xf5, 0xe8, 0x8d, 0x95, 0xe0, 0x89, + 0x03, 0x2e, 0x74, 0x7d, 0x9b, 0xb9, 0x60, 0x31, 0xb0, 0x18, 0x58, 0x2c, 0x53, 0x2c, 0x96, 0x8d, + 0x1d, 0x54, 0xb2, 0xa3, 0x2d, 0xb5, 0xa3, 0x2a, 0xba, 0x5a, 0x65, 0x67, 0xd5, 0xb4, 0x11, 0x85, + 0x1d, 0x56, 0x51, 0x23, 0x52, 0x3b, 0xad, 0x76, 0x48, 0xba, 0x1b, 0x3f, 0xf1, 0xb4, 0x6d, 0xcd, + 0x55, 0xac, 0x4a, 0xbe, 0x6a, 0x75, 0xfc, 0x18, 0x86, 0xac, 0x56, 0x0c, 0x7f, 0xf3, 0x14, 0x5f, + 0xdf, 0x57, 0x1b, 0x26, 0x7b, 0x31, 0xec, 0x3f, 0x4f, 0x9f, 0x68, 0x6b, 0x37, 0x4d, 0xdf, 0x3e, + 0x99, 0xbb, 0x6c, 0xcb, 0x38, 0xc4, 0x03, 0xf0, 0xd8, 0xc1, 0x58, 0x24, 0xf8, 0x0a, 0x6f, 0x4e, + 0x11, 0x8d, 0xa9, 0xd2, 0x31, 0x54, 0x3a, 0x66, 0xca, 0x6c, 0x3e, 0x51, 0xdb, 0xbb, 0x10, 0x17, + 0x8f, 0xe7, 0x66, 0x85, 0xf8, 0x3e, 0xa8, 0xb9, 0xab, 0xf3, 0x91, 0xdb, 0x61, 0x3f, 0x54, 0xda, + 0x33, 0x39, 0x6b, 0x32, 0x23, 0x24, 0xf3, 0xb7, 0xf1, 0xf5, 0x72, 0xe9, 0x4a, 0x19, 0xa7, 0x9d, + 0xe5, 0x21, 0x4b, 0x49, 0xdf, 0x69, 0x67, 0xa2, 0x66, 0x10, 0x5d, 0x28, 0x73, 0xf4, 0xcd, 0xda, + 0x19, 0x23, 0x7e, 0x14, 0x0e, 0x51, 0x5e, 0xaf, 0x6c, 0x30, 0x14, 0x86, 0x43, 0x66, 0x40, 0x54, + 0x86, 0x44, 0x6e, 0x50, 0xe4, 0x86, 0x45, 0x69, 0x60, 0x72, 0x86, 0x26, 0x69, 0x70, 0xea, 0xaa, + 0xc0, 0x32, 0x0d, 0x89, 0xbe, 0xdf, 0xbd, 0x36, 0xc8, 0x9c, 0x25, 0x74, 0x74, 0x9a, 0x4c, 0xe1, + 0x0c, 0xd1, 0xa3, 0x80, 0xd6, 0x76, 0x97, 0xd8, 0xd1, 0x40, 0x2b, 0x64, 0x54, 0x99, 0xa3, 0x82, + 0xe0, 0xae, 0xe0, 0xae, 0xe0, 0xae, 0x24, 0x6b, 0x8a, 0xad, 0xf5, 0x57, 0xe5, 0x14, 0xfb, 0x2b, + 0xb1, 0xd3, 0x54, 0xd6, 0xf6, 0x96, 0xc8, 0xd9, 0x2a, 0x9b, 0x7c, 0x55, 0x09, 0x8e, 0x0a, 0x8e, + 0x0a, 0x8e, 0x4a, 0x64, 0xb6, 0x08, 0x9f, 0x2f, 0xb3, 0xce, 0x76, 0x4e, 0x15, 0x9a, 0x50, 0x3b, + 0xd3, 0x79, 0xf2, 0x9f, 0xda, 0x74, 0x2d, 0x50, 0x9d, 0xf1, 0x4c, 0xe4, 0x54, 0x96, 0x9a, 0x23, + 0x3a, 0xf3, 0x39, 0x6a, 0x8f, 0xf0, 0x34, 0x62, 0xc5, 0xe9, 0x3c, 0x3f, 0x04, 0x04, 0x67, 0x41, + 0xeb, 0x1e, 0x02, 0xd5, 0xf3, 0x70, 0x12, 0x19, 0x8b, 0x83, 0xdd, 0x5c, 0xfd, 0x94, 0x14, 0xae, + 0x68, 0x55, 0x8c, 0x84, 0xab, 0x05, 0xa9, 0x39, 0x21, 0x2d, 0xd5, 0x83, 0xd6, 0xc4, 0x4d, 0x89, + 0x2a, 0x42, 0x2b, 0x03, 0xa6, 0x6e, 0x91, 0xef, 0x49, 0x54, 0x74, 0x97, 0x3b, 0x04, 0x3c, 0xba, + 0x5e, 0x61, 0xb9, 0x73, 0x76, 0xf5, 0x6f, 0xee, 0x6f, 0x87, 0x52, 0x7a, 0x78, 0x41, 0x69, 0x69, + 0x74, 0xf6, 0x66, 0xe6, 0xfe, 0xd6, 0x1e, 0x63, 0xaa, 0xae, 0x45, 0x6e, 0x81, 0xa5, 0x1d, 0xb9, + 0xbc, 0x41, 0x29, 0x5f, 0xc8, 0xea, 0x9e, 0x28, 0x2c, 0x32, 0x90, 0xb1, 0x3a, 0x76, 0x40, 0xad, + 0x9e, 0xa8, 0x63, 0x97, 0xf7, 0xf1, 0xe3, 0xd8, 0x5d, 0x1d, 0xca, 0xec, 0x20, 0xd2, 0xe2, 0x27, + 0x46, 0x1b, 0x49, 0xa4, 0xfd, 0x84, 0xc8, 0xfe, 0xec, 0xa5, 0xae, 0x94, 0xf5, 0x13, 0x15, 0xf8, + 0x09, 0xf8, 0x89, 0x4d, 0x7a, 0x95, 0xec, 0x62, 0xa4, 0x69, 0x77, 0x1d, 0x4f, 0xb4, 0x7a, 0xec, + 0xda, 0x29, 0x33, 0xd7, 0x1a, 0x64, 0x33, 0xc8, 0x66, 0x90, 0xcd, 0x04, 0x66, 0x8b, 0x5c, 0x39, + 0xdc, 0xb5, 0xb1, 0xa6, 0xaa, 0xd0, 0x86, 0x58, 0xb9, 0x5c, 0xaa, 0xae, 0x94, 0x4e, 0x90, 0x69, + 0xd4, 0x3a, 0xad, 0x09, 0x33, 0x7d, 0xe2, 0x4c, 0x94, 0x40, 0xab, 0x59, 0xcd, 0x53, 0x22, 0x4b, + 0x42, 0x96, 0xdf, 0x1f, 0x24, 0x9c, 0x04, 0x11, 0x2a, 0x6a, 0x49, 0x2d, 0x3a, 0x95, 0x11, 0x9d, + 0x10, 0x9d, 0xb2, 0x10, 0x9d, 0x64, 0xc1, 0x70, 0x6a, 0x7a, 0x66, 0x10, 0x38, 0x2c, 0x18, 0xbd, + 0x0c, 0xe2, 0x0c, 0x62, 0x53, 0xa8, 0x3e, 0xe0, 0x91, 0x35, 0xae, 0x68, 0x5c, 0x71, 0xa4, 0x68, + 0xd4, 0x79, 0x65, 0x43, 0xa5, 0x34, 0x58, 0x72, 0xc3, 0xa5, 0x36, 0x60, 0x6d, 0x86, 0xac, 0xcd, + 0xa0, 0x75, 0x18, 0xb6, 0x9a, 0x81, 0x2b, 0x1a, 0x3a, 0x1d, 0x8e, 0xae, 0x0b, 0x99, 0x42, 0x27, + 0x85, 0x6f, 0x33, 0xcf, 0x33, 0x82, 0xa6, 0x68, 0x16, 0x78, 0x69, 0xd0, 0x71, 0xee, 0xc6, 0x28, + 0x17, 0x7c, 0x89, 0xfd, 0xda, 0x52, 0xb3, 0xc4, 0x0b, 0xc0, 0x51, 0xbb, 0x1a, 0x16, 0x1f, 0x89, + 0x2c, 0x64, 0x7e, 0xa8, 0x08, 0x17, 0x86, 0x93, 0x1a, 0x2a, 0xba, 0x13, 0xcf, 0x77, 0x32, 0x7a, + 0x07, 0xe9, 0x68, 0xe5, 0x69, 0xa7, 0x5e, 0x5a, 0x39, 0xd3, 0xa5, 0x75, 0x5b, 0x89, 0x64, 0xbe, + 0xfa, 0x32, 0x60, 0xe2, 0x4c, 0x98, 0x66, 0x92, 0xc9, 0x4f, 0x30, 0x85, 0xc9, 0x55, 0x74, 0x3c, + 0xe3, 0x39, 0xf0, 0x4d, 0xdb, 0x32, 0x43, 0x6e, 0xf4, 0xbe, 0x73, 0x42, 0x58, 0x5f, 0x6e, 0x1a, + 0xa8, 0x0e, 0x54, 0x07, 0xaa, 0x03, 0xd5, 0x81, 0xea, 0x40, 0x75, 0xa0, 0x3a, 0x50, 0x3d, 0x9d, + 0xa8, 0xbe, 0x2b, 0x0e, 0xb3, 0x9d, 0xd0, 0x32, 0x03, 0x9b, 0x96, 0xc0, 0xa2, 0x46, 0xc1, 0x5e, + 0x60, 0x2f, 0xb0, 0x17, 0xd8, 0x0b, 0xec, 0x05, 0xf6, 0x02, 0x7b, 0x81, 0xbd, 0xc0, 0x5e, 0xb3, + 0xec, 0xc5, 0x82, 0xc0, 0x0f, 0x68, 0xc9, 0x6b, 0xdc, 0x24, 0xb8, 0x0b, 0xdc, 0x05, 0xee, 0x02, + 0x77, 0x81, 0xbb, 0xc0, 0x5d, 0xe0, 0x2e, 0x70, 0x17, 0xb8, 0x6b, 0x96, 0xbb, 0x3a, 0x56, 0xa8, + 0x83, 0xbd, 0x66, 0x9a, 0x05, 0x7f, 0x81, 0xbf, 0xc0, 0x5f, 0xe0, 0x2f, 0xf0, 0x17, 0xf8, 0x0b, + 0xfc, 0x05, 0xfe, 0x02, 0x7f, 0xcd, 0xf2, 0x57, 0xb7, 0xef, 0x72, 0x47, 0xcf, 0xde, 0xaf, 0x85, + 0xa6, 0xc1, 0x61, 0xe0, 0x30, 0x70, 0x18, 0x38, 0x0c, 0x1c, 0x06, 0x0e, 0x03, 0x87, 0x81, 0xc3, + 0xc0, 0x61, 0xb3, 0x1c, 0xe6, 0x5b, 0x9c, 0x11, 0xf3, 0xd7, 0xb8, 0x49, 0x70, 0x17, 0xb8, 0x0b, + 0xdc, 0x05, 0xee, 0x02, 0x77, 0x81, 0xbb, 0xc0, 0x5d, 0xe0, 0x2e, 0x70, 0xd7, 0x2c, 0x77, 0x91, + 0xab, 0x5e, 0xd0, 0xba, 0xc0, 0x5c, 0x60, 0x2e, 0x30, 0x17, 0x98, 0x0b, 0xcc, 0x05, 0xe6, 0x02, + 0x73, 0x81, 0xb9, 0x96, 0x98, 0xab, 0xef, 0x69, 0x5a, 0x71, 0x9c, 0x6b, 0x18, 0x0c, 0x06, 0x06, + 0x03, 0x83, 0x81, 0xc1, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x36, 0xcf, 0x60, + 0xdf, 0x3d, 0xff, 0x2f, 0xcf, 0xe8, 0x05, 0x3e, 0xf7, 0xa9, 0x29, 0x6c, 0xae, 0x69, 0x70, 0x18, + 0x38, 0x0c, 0x1c, 0x06, 0x0e, 0x03, 0x87, 0x81, 0xc3, 0xc0, 0x61, 0xe0, 0x30, 0x70, 0x58, 0x34, + 0x2c, 0xae, 0x19, 0x72, 0xc3, 0x72, 0x99, 0x19, 0xd0, 0x01, 0xd8, 0x4c, 0x9b, 0x20, 0x2f, 0x90, + 0x17, 0xc8, 0x2b, 0x45, 0xe4, 0xc5, 0x9d, 0x2e, 0xe3, 0x8e, 0xf5, 0x3d, 0x4c, 0x1d, 0x7b, 0x7d, + 0xf3, 0x46, 0x71, 0xa1, 0xe8, 0x99, 0x9e, 0x1f, 0x32, 0xcb, 0xf7, 0x94, 0x2b, 0x06, 0x82, 0xe9, + 0xc0, 0x74, 0x60, 0x3a, 0x30, 0xdd, 0xee, 0x98, 0x0e, 0x47, 0x2e, 0x50, 0x61, 0x02, 0x8e, 0x5c, + 0xa0, 0xc4, 0x7e, 0xbf, 0xcf, 0xb5, 0x9d, 0xb9, 0xb0, 0xa2, 0x6d, 0xa4, 0x01, 0x48, 0x03, 0x90, + 0x06, 0xa4, 0x28, 0x0d, 0x80, 0x00, 0x0b, 0x58, 0x07, 0xac, 0x03, 0xd6, 0x01, 0xeb, 0x14, 0xdf, + 0xaf, 0x4a, 0x62, 0xf4, 0xa7, 0x2e, 0xcc, 0xb5, 0x0a, 0xfa, 0x02, 0x7d, 0x81, 0xbe, 0x40, 0x5f, + 0xa0, 0x2f, 0xd0, 0x17, 0xe8, 0x0b, 0xf4, 0x05, 0xfa, 0x9a, 0xa3, 0x2f, 0xea, 0xda, 0xbf, 0x33, + 0x6d, 0x82, 0xbc, 0x40, 0x5e, 0x20, 0x2f, 0x90, 0x17, 0xc8, 0x0b, 0xe4, 0x05, 0xf2, 0x02, 0x79, + 0x81, 0xbc, 0xe6, 0xc8, 0x4b, 0x57, 0xe5, 0xdf, 0x15, 0x6d, 0x83, 0xc4, 0x40, 0x62, 0x20, 0x31, + 0x90, 0x18, 0x48, 0x0c, 0x24, 0x06, 0x12, 0x03, 0x89, 0x81, 0xc4, 0xe6, 0x48, 0x8c, 0xba, 0xf6, + 0xef, 0x4c, 0x9b, 0x20, 0x2f, 0x90, 0x17, 0xc8, 0x0b, 0xe4, 0x05, 0xf2, 0x02, 0x79, 0x81, 0xbc, + 0x40, 0x5e, 0x20, 0xaf, 0x39, 0xf2, 0xa2, 0x57, 0xbe, 0xa0, 0x77, 0x81, 0xba, 0x40, 0x5d, 0xa0, + 0x2e, 0x50, 0x17, 0xa8, 0x0b, 0xd4, 0x05, 0xea, 0x02, 0x75, 0x2d, 0x53, 0x97, 0x9e, 0xfa, 0xbf, + 0x4b, 0x2d, 0x83, 0xc2, 0x40, 0x61, 0xa0, 0x30, 0x50, 0x18, 0x28, 0x0c, 0x14, 0x06, 0x0a, 0x03, + 0x85, 0xe5, 0x8d, 0xc2, 0x0e, 0x12, 0x9c, 0xf3, 0xc5, 0x9a, 0xe7, 0xf9, 0xdc, 0x1c, 0x0c, 0xa5, + 0xd2, 0x34, 0x2f, 0x86, 0xd6, 0x2b, 0xeb, 0x9a, 0x3d, 0x93, 0xbf, 0x0e, 0x22, 0xc2, 0xa1, 0xdf, + 0x63, 0x9e, 0x35, 0x24, 0x24, 0xc3, 0x19, 0xc4, 0x86, 0x8e, 0x69, 0xb1, 0xf0, 0x70, 0xd5, 0x8f, + 0x87, 0x61, 0xff, 0x79, 0xe6, 0xf7, 0xb3, 0x7f, 0x3b, 0x0c, 0xb9, 0xc9, 0xd9, 0xe1, 0x38, 0xbc, + 0xa8, 0x80, 0x5f, 0x31, 0xe4, 0x41, 0xdf, 0xe2, 0xde, 0x38, 0x60, 0xdd, 0x47, 0x77, 0x77, 0x1d, + 0x7d, 0x73, 0x7b, 0xd5, 0x8f, 0xed, 0xe6, 0xec, 0xcd, 0xcd, 0xfd, 0xad, 0xdd, 0x1c, 0xdc, 0x5c, + 0xfb, 0x72, 0x72, 0x73, 0x07, 0xc9, 0x8c, 0xb5, 0xc4, 0x38, 0x17, 0x6d, 0x16, 0x5a, 0x81, 0xd3, + 0x53, 0x1a, 0xe4, 0x28, 0xd8, 0xcf, 0x36, 0x26, 0x39, 0xe7, 0xd4, 0xdc, 0x9f, 0x32, 0x79, 0x53, + 0x10, 0x37, 0x19, 0x69, 0x53, 0x11, 0x36, 0x39, 0x59, 0x93, 0x13, 0x35, 0x25, 0x49, 0x27, 0xeb, + 0x23, 0x95, 0x89, 0x39, 0x9a, 0x2d, 0x21, 0x0f, 0x1c, 0xef, 0x45, 0x65, 0xba, 0x8c, 0x6d, 0xa7, + 0x7c, 0x96, 0x62, 0x7f, 0xc3, 0x3c, 0xf3, 0xd9, 0x65, 0xb6, 0xba, 0xaf, 0x99, 0x34, 0x24, 0x39, + 0x6e, 0x57, 0xac, 0x63, 0xf6, 0xdd, 0xe1, 0x7c, 0x1b, 0x4c, 0x5f, 0xb8, 0x2b, 0xb8, 0x2b, 0xb8, + 0x2b, 0x91, 0xd9, 0xf2, 0xec, 0xfb, 0x2e, 0x33, 0x3d, 0x0a, 0x7f, 0x55, 0x4e, 0xb1, 0xbf, 0x72, + 0x3a, 0x8e, 0x67, 0xb3, 0x1f, 0xea, 0xfe, 0x6a, 0xd2, 0x10, 0x1c, 0x0d, 0x1c, 0x0d, 0x1c, 0x8d, + 0xc0, 0x6c, 0xe9, 0x3b, 0x1e, 0x3f, 0xaa, 0x10, 0xf8, 0x99, 0x53, 0x85, 0x26, 0x68, 0xe4, 0x42, + 0x02, 0x5d, 0x95, 0x52, 0x1e, 0x24, 0xd6, 0x9a, 0xa8, 0xe5, 0x40, 0x1d, 0x42, 0x12, 0x81, 0xfc, + 0x47, 0x2a, 0xfb, 0xe9, 0x1a, 0x82, 0x6a, 0xe5, 0xbc, 0x7a, 0x7e, 0x72, 0x5a, 0x39, 0x3f, 0x4e, + 0xf1, 0x58, 0xec, 0x48, 0x44, 0x7b, 0x4a, 0xd4, 0x11, 0x2a, 0x57, 0x14, 0xa6, 0x8b, 0x71, 0xda, + 0x2a, 0x08, 0xd3, 0x57, 0x0e, 0x26, 0xaa, 0x18, 0x2c, 0x37, 0x49, 0x9e, 0x92, 0x21, 0x4b, 0x22, + 0xae, 0x54, 0xa1, 0xca, 0x99, 0x2c, 0xb8, 0x04, 0x32, 0x05, 0x99, 0x82, 0x4c, 0x41, 0xa6, 0x20, + 0x53, 0x90, 0x29, 0xc8, 0x34, 0x4b, 0x64, 0x9a, 0x08, 0xae, 0x8c, 0xce, 0x18, 0x7b, 0x1d, 0x7b, + 0x1b, 0x45, 0x68, 0x99, 0x6d, 0x0c, 0xd8, 0x01, 0xec, 0x00, 0x76, 0x08, 0xcc, 0x16, 0x9a, 0x13, + 0xc5, 0x08, 0x36, 0xd3, 0x51, 0x9f, 0x20, 0x06, 0x96, 0x01, 0xcb, 0x64, 0x8a, 0x65, 0xf4, 0x6d, + 0xa6, 0x03, 0xd5, 0x40, 0x6f, 0x83, 0xde, 0x46, 0x0b, 0xb0, 0xfe, 0x8b, 0x63, 0x99, 0x2e, 0x01, + 0xbc, 0x8e, 0x1b, 0x02, 0xb8, 0x02, 0x5c, 0x01, 0xae, 0x02, 0xb3, 0x65, 0xf7, 0x5b, 0x46, 0x10, + 0x53, 0x10, 0x53, 0x28, 0x63, 0xca, 0x78, 0xd3, 0xb8, 0x62, 0x40, 0x19, 0xb6, 0x82, 0x68, 0x82, + 0x68, 0x82, 0x68, 0x22, 0x30, 0x5b, 0x76, 0xbe, 0x5f, 0x1a, 0xc1, 0x04, 0xc1, 0x84, 0x32, 0x98, + 0xf8, 0x3d, 0x16, 0x18, 0x21, 0x37, 0x79, 0x3f, 0x54, 0x8f, 0x29, 0xb3, 0x8d, 0x21, 0xb4, 0x20, + 0xb4, 0x20, 0xb4, 0x08, 0xcc, 0x16, 0xe6, 0xf5, 0xbb, 0x2c, 0x30, 0x15, 0xde, 0x63, 0x9b, 0x8b, + 0x2f, 0x55, 0x85, 0x36, 0xea, 0x5e, 0xbf, 0x3b, 0x78, 0xa8, 0x9f, 0x88, 0x51, 0x88, 0x51, 0xc4, + 0x31, 0xea, 0x40, 0xe3, 0x54, 0x52, 0x7d, 0x79, 0x58, 0xe3, 0x4b, 0xc3, 0x12, 0xf3, 0x46, 0xdb, + 0x3b, 0xc2, 0x62, 0xb3, 0x24, 0xfe, 0x88, 0xc5, 0xfb, 0x64, 0xcc, 0x31, 0x1d, 0x98, 0xa3, 0xe8, + 0x56, 0xc3, 0xe2, 0x8d, 0x13, 0xf2, 0x1a, 0xe7, 0x81, 0xd0, 0xe8, 0x17, 0x6f, 0x1d, 0xaf, 0x3e, + 0x30, 0x74, 0x6f, 0xe8, 0x7f, 0xbc, 0xbe, 0xeb, 0x7e, 0x10, 0xb8, 0xd8, 0xfc, 0x21, 0x7f, 0xf1, + 0x7d, 0x60, 0xb3, 0x80, 0xd9, 0x17, 0xef, 0xe3, 0x4b, 0x49, 0x3b, 0x50, 0xd2, 0x18, 0xb4, 0x18, + 0x81, 0xc0, 0xf4, 0xd7, 0x30, 0xed, 0xe3, 0x4d, 0xf8, 0xed, 0xd3, 0x77, 0xf3, 0x27, 0xb6, 0x8c, + 0x8b, 0xe8, 0x78, 0x50, 0x8d, 0x43, 0x8c, 0xae, 0xa7, 0xe9, 0xf2, 0xcd, 0xbd, 0xbc, 0xbe, 0xef, + 0x56, 0xff, 0xcb, 0x9a, 0xde, 0x9c, 0xb8, 0x85, 0x0d, 0xf2, 0x55, 0x3c, 0x2f, 0x20, 0x64, 0xf5, + 0x42, 0x56, 0x1e, 0xcf, 0xaa, 0xd7, 0x3d, 0x5f, 0xad, 0xff, 0x32, 0xf8, 0x9a, 0xe1, 0xdb, 0xca, + 0xeb, 0x51, 0x68, 0xf3, 0xf4, 0x89, 0x98, 0xf2, 0x70, 0xc8, 0xd2, 0x9f, 0x66, 0x26, 0xc9, 0xc2, + 0x2f, 0xb6, 0x4c, 0x8e, 0xe2, 0xd5, 0x5c, 0xa5, 0x86, 0x62, 0xcd, 0xb6, 0xc3, 0x82, 0x69, 0xdb, + 0x83, 0xbf, 0x9b, 0x6e, 0xa1, 0xce, 0x5f, 0x59, 0xe0, 0x31, 0x6e, 0x84, 0x3d, 0x66, 0x39, 0x1d, + 0xc7, 0x2a, 0x8c, 0xa6, 0x4d, 0x7f, 0x84, 0xb1, 0x05, 0xee, 0x3f, 0x7a, 0xd3, 0xef, 0x2e, 0x74, + 0x7d, 0x9b, 0x6d, 0x5b, 0xc1, 0x8a, 0xf8, 0x75, 0xcb, 0xc7, 0xe2, 0x26, 0x7a, 0x22, 0x09, 0xdd, + 0x6c, 0xe2, 0xc6, 0xf8, 0x6b, 0x1c, 0xc3, 0x11, 0xcc, 0xd0, 0xa4, 0x33, 0x31, 0xe9, 0x8c, 0x6b, + 0x31, 0xb3, 0x1a, 0x3c, 0x97, 0x66, 0x3f, 0x77, 0xe5, 0xc4, 0x8b, 0xbf, 0x45, 0x36, 0x9e, 0x3e, + 0xf1, 0xbb, 0x2f, 0xca, 0x95, 0x26, 0x57, 0xc6, 0xec, 0x84, 0x85, 0x69, 0xdc, 0xf2, 0x7b, 0x86, + 0xcb, 0xde, 0x98, 0x3b, 0x98, 0xaf, 0xdc, 0x74, 0x3c, 0x16, 0x14, 0x3a, 0x7e, 0x50, 0x98, 0x34, + 0x3b, 0x3f, 0x8d, 0x1f, 0x3d, 0xd3, 0xb3, 0x0b, 0x22, 0x14, 0x17, 0x73, 0x12, 0x4b, 0xab, 0x16, + 0x32, 0x2a, 0x85, 0xf8, 0xe4, 0x56, 0x95, 0x21, 0x94, 0x65, 0x07, 0x65, 0x99, 0x41, 0x6a, 0xf2, + 0x0b, 0xd2, 0xac, 0xaa, 0x31, 0x09, 0x86, 0xc5, 0xa7, 0x75, 0x61, 0x23, 0x1e, 0x5c, 0xc8, 0x43, + 0xc5, 0x86, 0xb1, 0x93, 0xc5, 0x87, 0xd5, 0x63, 0xb1, 0xfc, 0xdc, 0xf3, 0xbf, 0x59, 0x70, 0x3f, + 0xdb, 0x9e, 0x5c, 0xf4, 0x89, 0x57, 0x3c, 0xa7, 0xd8, 0xf3, 0xcd, 0x3f, 0xd5, 0xf4, 0xde, 0x67, + 0xee, 0xbb, 0x38, 0xfd, 0x3a, 0x63, 0xe4, 0x57, 0x16, 0xef, 0x7c, 0xe6, 0x4d, 0xab, 0x85, 0x4f, + 0x2e, 0x3c, 0xfd, 0x6a, 0x4f, 0x33, 0xf5, 0x28, 0x95, 0x85, 0x7f, 0xd8, 0xe0, 0x39, 0x66, 0xaa, + 0x06, 0xac, 0xea, 0x84, 0x2d, 0x5e, 0x20, 0xb6, 0xb5, 0xc7, 0xb6, 0xea, 0x39, 0xeb, 0x5d, 0xa5, + 0x08, 0x6e, 0x9e, 0x17, 0xeb, 0xc2, 0xd0, 0xb4, 0x4b, 0xd7, 0x3f, 0xcb, 0x52, 0xef, 0xaf, 0x7b, + 0x96, 0xcd, 0x8e, 0x7e, 0xab, 0x63, 0x8f, 0xe3, 0xc8, 0x37, 0x0f, 0x8b, 0xa8, 0x93, 0x16, 0x76, + 0xca, 0xc2, 0x4e, 0x78, 0xeb, 0xb0, 0xc9, 0x71, 0xff, 0x36, 0xaa, 0x28, 0x9a, 0x76, 0xd7, 0xf1, + 0xe2, 0x2e, 0x65, 0x44, 0x9d, 0x3a, 0x77, 0x55, 0x3c, 0x34, 0x2d, 0xed, 0x12, 0x4d, 0x63, 0x2d, + 0x28, 0x64, 0x0c, 0x4b, 0xe3, 0xa8, 0xfd, 0x6a, 0x48, 0x1a, 0x5b, 0xa5, 0x97, 0x54, 0xe3, 0x45, + 0x54, 0xf7, 0x98, 0xea, 0xfa, 0x06, 0x30, 0xd8, 0xe0, 0x05, 0x5e, 0x9d, 0x97, 0x57, 0x16, 0x18, + 0xae, 0xf9, 0xce, 0x02, 0xc3, 0xe9, 0xc4, 0xb7, 0x83, 0xc5, 0x0b, 0x61, 0x0a, 0x30, 0x85, 0xc5, + 0x20, 0x38, 0x22, 0x10, 0x23, 0x60, 0x1d, 0x11, 0x93, 0x88, 0xf1, 0x9e, 0x69, 0xb1, 0x31, 0xa1, + 0xb3, 0x39, 0xb1, 0x62, 0xf4, 0x7d, 0x73, 0xbf, 0x1b, 0xfc, 0x65, 0xc8, 0x61, 0x4a, 0x7d, 0x20, + 0x24, 0x13, 0x4b, 0xc9, 0xc3, 0x52, 0xb2, 0xb0, 0x98, 0x1c, 0x2c, 0xe7, 0x20, 0x9c, 0x8e, 0x11, + 0xaf, 0x06, 0xc0, 0x8c, 0x99, 0x19, 0x71, 0x34, 0x78, 0xb8, 0x84, 0xfd, 0x72, 0x09, 0xb1, 0xde, + 0x41, 0x9f, 0x4c, 0x8a, 0xa3, 0x18, 0x1f, 0x15, 0x7b, 0x0f, 0x4b, 0x6c, 0x79, 0x47, 0x42, 0xbb, + 0x90, 0xda, 0x87, 0x32, 0x7d, 0x49, 0x47, 0xf0, 0x3a, 0x85, 0x37, 0x6f, 0x7e, 0x8a, 0x2d, 0x56, + 0x25, 0xde, 0x15, 0x95, 0x72, 0xf5, 0xb4, 0x7a, 0x76, 0x74, 0x52, 0x3d, 0x4d, 0xb0, 0x4f, 0x88, + 0xb4, 0x9b, 0x27, 0x0d, 0x1e, 0x58, 0xe4, 0x9d, 0x66, 0x89, 0x77, 0x97, 0xe1, 0x87, 0xf7, 0xc8, + 0x0f, 0xdb, 0x03, 0x1e, 0x33, 0x3d, 0xdb, 0xe0, 0x4e, 0xac, 0xdd, 0xdc, 0xd3, 0xdd, 0xa7, 0xf1, + 0xa0, 0x8c, 0xb3, 0xc0, 0x8b, 0xed, 0x92, 0x8b, 0x8f, 0x8f, 0xf6, 0xdf, 0xd5, 0x9f, 0xc6, 0xe0, + 0x8f, 0xca, 0xe4, 0x8f, 0xd6, 0xe8, 0x8f, 0x4f, 0x73, 0x7f, 0xfc, 0xf2, 0xf8, 0xf8, 0xf1, 0xf1, + 0xd1, 0xfe, 0xc7, 0xaf, 0xff, 0xf9, 0xcb, 0xbf, 0xfe, 0xf7, 0xcf, 0xc7, 0xc7, 0x7f, 0x3c, 0x3e, + 0x1a, 0x4f, 0x73, 0x9f, 0xf8, 0xb5, 0xb8, 0x1b, 0xdb, 0xf4, 0xff, 0x92, 0xca, 0x9e, 0x16, 0xae, + 0x83, 0x85, 0xc2, 0x42, 0x91, 0x3c, 0xe5, 0x2f, 0x79, 0x8a, 0xf5, 0xe6, 0x8d, 0xc8, 0x1b, 0x36, + 0x70, 0x05, 0x7b, 0xe4, 0x0a, 0x62, 0xbf, 0x3b, 0x12, 0xf3, 0x1d, 0x11, 0xb9, 0x39, 0x2c, 0xb2, + 0xe1, 0x5f, 0x62, 0x63, 0x3f, 0x66, 0x34, 0x44, 0xf2, 0xb4, 0x8b, 0xe4, 0xbd, 0xd7, 0xf7, 0xd0, + 0x30, 0x6d, 0x3b, 0x60, 0xa1, 0x80, 0x0d, 0xcc, 0x5d, 0x05, 0x23, 0x80, 0x11, 0x88, 0xcf, 0x0b, + 0xfd, 0x29, 0xd8, 0x2f, 0x7f, 0x96, 0x8c, 0x73, 0xd3, 0xe8, 0xd4, 0x8c, 0xcf, 0x4f, 0x83, 0x44, + 0xeb, 0xd3, 0xfc, 0xdf, 0x7f, 0xfd, 0x7f, 0x7e, 0xfd, 0xcf, 0xdd, 0x64, 0x56, 0x61, 0x8f, 0xc5, + 0x38, 0x80, 0x65, 0x1a, 0x2b, 0x87, 0x1f, 0x87, 0x95, 0xc1, 0xca, 0xc6, 0xfd, 0xfc, 0x62, 0xf6, + 0x5f, 0x58, 0xac, 0xda, 0x63, 0x02, 0x35, 0xc6, 0xf2, 0xa5, 0x39, 0x97, 0xa0, 0x39, 0xd3, 0xd5, + 0xc8, 0xca, 0xab, 0xfa, 0x3c, 0x80, 0x78, 0x27, 0xe4, 0x8e, 0x25, 0x40, 0x3e, 0x33, 0xd7, 0x64, + 0x60, 0xf3, 0x36, 0x3c, 0xb2, 0x8c, 0x47, 0x8e, 0xbd, 0x69, 0xdb, 0x76, 0x42, 0xcb, 0xf7, 0xb8, + 0xe3, 0xf5, 0x1d, 0xfe, 0x3e, 0xd2, 0x9d, 0x85, 0xb7, 0x6f, 0xaf, 0x68, 0x43, 0x6c, 0x63, 0x75, + 0x29, 0x8d, 0x1b, 0xab, 0x85, 0xde, 0xf5, 0xce, 0xc9, 0xa6, 0x6a, 0x91, 0x17, 0xb5, 0x69, 0x5f, + 0x0f, 0x14, 0x7e, 0xf1, 0x5a, 0x7a, 0xd1, 0x44, 0x86, 0xdc, 0xa5, 0x09, 0x3e, 0xba, 0x30, 0xd9, + 0xc5, 0x94, 0x78, 0x21, 0x27, 0xfe, 0x48, 0xc6, 0x18, 0xc5, 0xa2, 0xe3, 0x19, 0xcf, 0x81, 0x6f, + 0xda, 0x96, 0x19, 0x72, 0xa3, 0xf7, 0x9d, 0x87, 0xe2, 0x8e, 0x64, 0xb9, 0x09, 0xf8, 0x11, 0xf8, + 0x91, 0x84, 0xfc, 0xc8, 0xf8, 0x18, 0x68, 0xa1, 0x82, 0xc8, 0x12, 0x05, 0x90, 0x25, 0x0b, 0x14, + 0x4b, 0xbc, 0xfd, 0xae, 0x52, 0x80, 0x58, 0xb5, 0x70, 0x8b, 0x62, 0x81, 0x61, 0x8a, 0xd2, 0xb5, + 0x32, 0xe5, 0x73, 0x54, 0x0a, 0x06, 0x53, 0x75, 0x19, 0x5d, 0x41, 0x60, 0x92, 0x5e, 0xd4, 0x54, + 0x5c, 0x20, 0xe1, 0xc8, 0x34, 0x40, 0x54, 0x33, 0xb0, 0xe5, 0x62, 0x52, 0x74, 0x31, 0xa2, 0x11, + 0xa2, 0x51, 0xb2, 0xd1, 0x48, 0xe8, 0x68, 0x20, 0x89, 0xa3, 0x80, 0x10, 0x8d, 0x10, 0x8d, 0x36, + 0x76, 0x99, 0xea, 0x51, 0x3b, 0x88, 0x41, 0x51, 0x0c, 0x62, 0x41, 0xe0, 0x07, 0x72, 0x11, 0x68, + 0x7c, 0x29, 0xe2, 0x0f, 0xe2, 0x0f, 0xe2, 0x0f, 0xe2, 0x0f, 0xe2, 0x0f, 0xe2, 0x8f, 0x78, 0xfc, + 0xe9, 0xf6, 0x5d, 0xee, 0xa8, 0xa9, 0x73, 0x0b, 0x4d, 0x20, 0x1e, 0x21, 0x1e, 0x41, 0x9d, 0x43, + 0x3c, 0x82, 0x3a, 0x87, 0xc8, 0xa4, 0x12, 0x99, 0x7c, 0x8b, 0x33, 0xc9, 0x88, 0x34, 0xbe, 0x14, + 0x91, 0x08, 0x91, 0x08, 0x91, 0x08, 0x91, 0x08, 0x91, 0x08, 0x91, 0x48, 0x25, 0x12, 0xf5, 0x3d, + 0xc5, 0x0c, 0x69, 0xae, 0x01, 0x44, 0x25, 0x44, 0x25, 0x44, 0x25, 0x44, 0x25, 0x44, 0x25, 0x44, + 0x25, 0xb5, 0xa8, 0xf4, 0xdd, 0xf3, 0xff, 0xf2, 0x8c, 0x5e, 0xe0, 0x73, 0x5f, 0x36, 0x2e, 0xcd, + 0x35, 0x81, 0xc8, 0x84, 0xc8, 0x94, 0x6c, 0x64, 0xc2, 0x4a, 0x12, 0x22, 0x13, 0x56, 0x92, 0x72, + 0x10, 0x8f, 0xfc, 0x3e, 0x57, 0xde, 0xe8, 0xbd, 0xa2, 0x0d, 0x44, 0x24, 0x44, 0x24, 0xe4, 0x4a, + 0x88, 0x48, 0xc8, 0x95, 0x10, 0x9b, 0x94, 0x62, 0x93, 0xfc, 0x56, 0xef, 0xb9, 0xab, 0x11, 0x8f, + 0x10, 0x8f, 0x90, 0x21, 0x21, 0x1e, 0x21, 0x43, 0x42, 0x14, 0x92, 0x88, 0x42, 0xb2, 0x9b, 0xbd, + 0x67, 0xae, 0x45, 0x04, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x92, 0x88, + 0x40, 0xaa, 0xdb, 0xbd, 0x57, 0xb4, 0x81, 0x88, 0x84, 0x88, 0x04, 0x8d, 0x0e, 0x11, 0x09, 0x1a, + 0x1d, 0x62, 0x93, 0x52, 0x6c, 0x92, 0xdd, 0xf0, 0x3d, 0x73, 0x2d, 0x62, 0x11, 0x62, 0x11, 0x62, + 0x11, 0x62, 0x11, 0x62, 0x11, 0x62, 0x91, 0x52, 0x2c, 0x52, 0xdb, 0xf2, 0xbd, 0xd4, 0x02, 0xe2, + 0x12, 0xe2, 0x12, 0xe2, 0x12, 0xe2, 0x12, 0xe2, 0x12, 0xe2, 0x92, 0xc4, 0x27, 0xb6, 0x15, 0x76, + 0xae, 0x79, 0x9e, 0xcf, 0x47, 0x47, 0xb4, 0xc4, 0xaa, 0xef, 0x1c, 0x5a, 0xaf, 0xac, 0x6b, 0xf6, + 0xa2, 0x33, 0xc5, 0x18, 0xef, 0x18, 0xd3, 0x53, 0xc5, 0x0e, 0x97, 0x0f, 0x18, 0x8b, 0x4e, 0x17, + 0x8b, 0x5d, 0x26, 0x7c, 0xf4, 0x3d, 0x3c, 0xe8, 0x5b, 0x7c, 0x7c, 0xa2, 0x56, 0xf1, 0xba, 0xde, + 0xfa, 0x7c, 0x1d, 0x35, 0xdd, 0x9e, 0xfe, 0xd8, 0x1c, 0x7c, 0xc9, 0xf4, 0xef, 0xed, 0xe6, 0xf4, + 0x4b, 0x34, 0x54, 0x47, 0xe7, 0x71, 0x5c, 0x6b, 0xe4, 0x4e, 0x87, 0x9f, 0xc6, 0x19, 0x15, 0x38, + 0xa3, 0x62, 0xd2, 0xcf, 0x36, 0xf3, 0xb8, 0xc3, 0xdf, 0x05, 0xcf, 0xf8, 0x8b, 0xe1, 0xfa, 0x8a, + 0xd7, 0xe3, 0xa6, 0x2f, 0xcc, 0x90, 0xc9, 0xbc, 0xce, 0x31, 0x39, 0x84, 0x70, 0x38, 0x65, 0x55, + 0x3b, 0xee, 0x40, 0xec, 0x5f, 0xd6, 0x74, 0xf4, 0x60, 0x02, 0x6d, 0x39, 0x26, 0x2f, 0xde, 0x59, + 0x83, 0x42, 0x67, 0x0c, 0x0a, 0x9d, 0x2d, 0x18, 0xef, 0x4c, 0xc1, 0x75, 0xcf, 0x17, 0xd3, 0xf3, + 0xca, 0x7b, 0xdc, 0xe2, 0xc6, 0x73, 0x1e, 0x64, 0xdc, 0xeb, 0xea, 0xa9, 0xb1, 0x3c, 0xac, 0xf3, + 0xbf, 0x59, 0xe8, 0x80, 0x6d, 0x0f, 0x2e, 0xfa, 0xc0, 0x2b, 0x1e, 0x53, 0xe8, 0xf1, 0xe6, 0x1f, + 0x6a, 0x7a, 0xeb, 0x33, 0xb7, 0x5d, 0x74, 0x5d, 0xbb, 0xb7, 0x74, 0xb3, 0xd3, 0xe3, 0x5d, 0x07, + 0xff, 0xba, 0xf0, 0x90, 0xab, 0x8f, 0xba, 0x58, 0xeb, 0xc8, 0x37, 0x39, 0xee, 0x69, 0x6e, 0x68, + 0x19, 0x2b, 0xbe, 0x2a, 0x8e, 0x77, 0x8e, 0xed, 0x8d, 0x63, 0x7b, 0xdf, 0x39, 0x6f, 0x3b, 0xb9, + 0x31, 0xc1, 0x89, 0xb0, 0xee, 0x50, 0x89, 0xa2, 0x35, 0xe9, 0xa5, 0x35, 0x4f, 0x33, 0x4d, 0x58, + 0x86, 0x9f, 0x5b, 0xe7, 0x40, 0x36, 0x9e, 0x36, 0xb2, 0x35, 0xa6, 0xc6, 0x89, 0xa5, 0x31, 0x86, + 0x46, 0x34, 0x80, 0x0a, 0x07, 0x4e, 0xe1, 0x80, 0x19, 0x6f, 0xe8, 0xe4, 0x9c, 0xf6, 0xb6, 0x73, + 0x42, 0x8a, 0xd6, 0xab, 0x19, 0x86, 0x4e, 0x68, 0x38, 0x02, 0xa7, 0x7d, 0xcd, 0x5c, 0x93, 0x01, + 0x9c, 0xda, 0x3e, 0x15, 0x32, 0xca, 0x54, 0x5b, 0xa7, 0xca, 0xae, 0xc0, 0x2a, 0x1d, 0x27, 0xa7, + 0x4e, 0x67, 0xa9, 0x21, 0x96, 0x27, 0x2c, 0x5e, 0x88, 0x39, 0x8e, 0x39, 0xae, 0x38, 0x49, 0x0a, + 0x69, 0x3a, 0x4f, 0x95, 0x79, 0xe6, 0xb3, 0x2b, 0x72, 0xba, 0xe3, 0xe4, 0x82, 0x6d, 0x67, 0x52, + 0xb1, 0x8e, 0xd9, 0x77, 0x87, 0xc3, 0x36, 0x18, 0x6d, 0xd8, 0x0d, 0xec, 0x66, 0xb9, 0xc7, 0x9f, + 0x7d, 0xdf, 0x65, 0xa6, 0xd0, 0xf9, 0xc3, 0x65, 0x0d, 0x36, 0xf0, 0xca, 0x5c, 0xd7, 0x1f, 0x9e, + 0x28, 0x15, 0xc4, 0xb7, 0x83, 0xd9, 0x8b, 0x30, 0xb9, 0x31, 0xb9, 0x97, 0x7a, 0xbc, 0xef, 0x78, + 0x1c, 0x87, 0x9e, 0x12, 0xae, 0xbe, 0xe0, 0xd0, 0x53, 0x6d, 0xbd, 0x93, 0xe6, 0x43, 0x4f, 0xfb, + 0xbd, 0x5e, 0xc0, 0xc2, 0xd0, 0xe0, 0xee, 0x9b, 0x61, 0xda, 0x6f, 0x2c, 0xe0, 0x4e, 0xc8, 0xc6, + 0xd6, 0x1f, 0xf7, 0x10, 0xd4, 0xf5, 0x6d, 0xc0, 0x75, 0xc3, 0x75, 0x67, 0x67, 0x31, 0xe0, 0xe6, + 0xe6, 0xaa, 0xd1, 0x6e, 0xdd, 0xfc, 0x33, 0xee, 0x30, 0x0d, 0xdd, 0x4b, 0x28, 0xb4, 0x9a, 0x2f, + 0xe8, 0xf7, 0x26, 0x77, 0xd6, 0xb8, 0x7f, 0x68, 0xb5, 0xaf, 0xea, 0xcd, 0xcb, 0x87, 0xeb, 0x46, + 0xeb, 0xfa, 0xfe, 0xae, 0xa8, 0xc3, 0x35, 0x4b, 0xde, 0x5b, 0xf3, 0x8f, 0x66, 0xab, 0x7e, 0xdb, + 0xbe, 0xac, 0x35, 0x6a, 0x17, 0xd7, 0x37, 0xd7, 0xad, 0xeb, 0x7a, 0x33, 0x85, 0xb7, 0x97, 0xd2, + 0xce, 0xbb, 0xfc, 0x5a, 0x6b, 0x36, 0xaf, 0x9b, 0xed, 0xeb, 0xab, 0x34, 0xdd, 0xd5, 0x6d, 0xed, + 0xae, 0xf6, 0xa5, 0x7e, 0x5b, 0xbf, 0x6b, 0xb5, 0x6b, 0x57, 0x57, 0x0f, 0xf5, 0x66, 0xaa, 0x46, + 0x74, 0x68, 0x0c, 0xe9, 0xea, 0xb0, 0xf1, 0x24, 0xbb, 0xab, 0xdd, 0xd6, 0xa9, 0xf7, 0x3e, 0x3d, + 0x69, 0xf6, 0xdf, 0xb1, 0x16, 0x12, 0x67, 0x41, 0x36, 0xf6, 0x1a, 0xe1, 0x2c, 0xf2, 0x89, 0x5f, + 0x14, 0x6b, 0x81, 0x51, 0x11, 0x7e, 0xde, 0x43, 0xce, 0xba, 0x86, 0xcd, 0x42, 0x2b, 0x70, 0x7a, + 0xb1, 0x36, 0x82, 0x4c, 0xa1, 0x67, 0xf9, 0x5a, 0xc0, 0x0e, 0x60, 0x87, 0x42, 0xa0, 0x8f, 0xf1, + 0xd9, 0x1b, 0xe6, 0xbd, 0x0c, 0xd7, 0x88, 0x91, 0xa9, 0xe6, 0x2b, 0x53, 0xad, 0x1c, 0x23, 0x31, + 0x9d, 0xf5, 0xcd, 0xe3, 0x7d, 0x0c, 0x62, 0x4e, 0x79, 0xc3, 0xbe, 0x19, 0x78, 0x63, 0x78, 0x63, + 0x78, 0x63, 0x78, 0x63, 0x78, 0xe3, 0x98, 0xff, 0x42, 0xbc, 0x85, 0xcf, 0xef, 0x31, 0x6f, 0xb4, + 0x75, 0x69, 0xe8, 0x21, 0x0e, 0x87, 0xff, 0xb7, 0x71, 0x2f, 0x53, 0x61, 0x79, 0x53, 0xdb, 0x7d, + 0xd4, 0xc8, 0x8d, 0x6b, 0xf7, 0xda, 0xc3, 0xff, 0x1b, 0x3b, 0xea, 0xb8, 0xbb, 0xf4, 0x56, 0xec, + 0x23, 0x9b, 0x6e, 0xae, 0xdb, 0xbe, 0xfb, 0x6a, 0xe6, 0xb3, 0xd8, 0x81, 0x95, 0x9d, 0x1d, 0x58, + 0xd3, 0xfd, 0xa1, 0xb1, 0x91, 0x22, 0xce, 0x96, 0xd2, 0x18, 0x03, 0x0e, 0xa0, 0xc8, 0x02, 0x50, + 0x6c, 0x9b, 0x40, 0xd1, 0x07, 0xb7, 0xec, 0xd2, 0x5c, 0x3b, 0x40, 0x5b, 0x3d, 0x9d, 0xc4, 0x94, + 0x12, 0x9e, 0x5a, 0x32, 0x53, 0x4c, 0x61, 0xaa, 0xc9, 0x4e, 0x39, 0xe5, 0xa9, 0xa7, 0x3c, 0x05, + 0xd5, 0xa6, 0xa2, 0x60, 0x5c, 0x8f, 0x39, 0x66, 0x71, 0xa7, 0x68, 0x74, 0x41, 0xdc, 0x2d, 0x48, + 0x6b, 0x47, 0x3a, 0xde, 0x96, 0xa4, 0xe5, 0x1b, 0x15, 0xda, 0xa2, 0x44, 0x45, 0x6e, 0xa2, 0x36, + 0xa0, 0x62, 0x0b, 0x04, 0x36, 0xa1, 0x6a, 0x1b, 0x64, 0x36, 0x42, 0x66, 0x2b, 0x34, 0x36, 0x23, + 0x66, 0x3b, 0x12, 0xe9, 0x44, 0x41, 0xea, 0x75, 0xe1, 0xa5, 0x11, 0x8f, 0xbf, 0xc5, 0x6a, 0xad, + 0x73, 0x2f, 0x6b, 0x7a, 0xc7, 0x52, 0x24, 0xb7, 0x8a, 0xa5, 0xb2, 0xac, 0xed, 0x84, 0x18, 0x72, + 0x0b, 0xcc, 0x1b, 0xe6, 0x9d, 0x45, 0xf3, 0x36, 0x43, 0x36, 0x7d, 0xff, 0xca, 0x88, 0xb7, 0x61, + 0x61, 0xad, 0xa5, 0x9f, 0x4a, 0x5c, 0xdb, 0x88, 0x12, 0x67, 0xcb, 0x70, 0x3a, 0x9f, 0x66, 0xde, + 0x05, 0x5b, 0xf8, 0xc5, 0xf8, 0xef, 0x43, 0x5b, 0xd4, 0xe5, 0x51, 0x48, 0x41, 0x46, 0xf0, 0xed, + 0x6b, 0x21, 0x41, 0x61, 0xd5, 0x2b, 0x73, 0x87, 0x42, 0xec, 0x1d, 0x53, 0x75, 0x58, 0xf5, 0x6a, + 0xdd, 0x46, 0x29, 0x42, 0xbc, 0x4f, 0xe3, 0xd4, 0x5e, 0x11, 0xf2, 0xdf, 0x32, 0x7e, 0x3b, 0xd5, + 0x35, 0x56, 0x90, 0x8a, 0xec, 0xc6, 0x82, 0xe5, 0xab, 0xad, 0xb8, 0xcc, 0xec, 0x88, 0x39, 0x53, + 0x19, 0x27, 0x1a, 0x39, 0xcf, 0x8f, 0x1f, 0xc7, 0xc6, 0x7f, 0x18, 0xdf, 0x3d, 0x12, 0x19, 0x26, + 0x73, 0x5e, 0x5e, 0x9f, 0xa5, 0xaa, 0x97, 0x4f, 0x2f, 0xd5, 0xac, 0x16, 0x54, 0x60, 0xa2, 0x50, + 0x0b, 0x16, 0x27, 0xac, 0x42, 0x36, 0x30, 0x69, 0x41, 0x2e, 0x23, 0x28, 0x23, 0x23, 0x40, 0x46, + 0xa0, 0x2b, 0x23, 0x10, 0x35, 0x87, 0xa9, 0xde, 0x6b, 0xf6, 0xcc, 0x67, 0xc7, 0x75, 0xb8, 0xc3, + 0x42, 0xf9, 0x31, 0x8b, 0x54, 0xe0, 0xd9, 0xd6, 0x3e, 0x28, 0xd5, 0x9b, 0x2a, 0x4b, 0x5e, 0x2e, + 0xea, 0xfd, 0x29, 0xcd, 0x87, 0xd0, 0x8c, 0xa8, 0xcc, 0x89, 0xdc, 0xac, 0xc8, 0xcd, 0x8b, 0xd6, + 0xcc, 0xe4, 0xcc, 0x4d, 0xd2, 0xec, 0x94, 0xcd, 0x6f, 0xd9, 0x0c, 0xdf, 0xd5, 0x47, 0x7a, 0xc9, + 0x18, 0xdf, 0x55, 0x87, 0x5a, 0xcd, 0x24, 0x95, 0x23, 0x9a, 0x0e, 0x13, 0xd5, 0x60, 0xaa, 0xd4, + 0x26, 0xab, 0xcd, 0x74, 0xb5, 0x99, 0xb0, 0x1e, 0x53, 0x56, 0x33, 0x69, 0x45, 0xd3, 0x26, 0x33, + 0xf1, 0xa9, 0xa9, 0x8b, 0xad, 0xb0, 0xc6, 0x37, 0x77, 0x51, 0x15, 0x28, 0x01, 0x93, 0x27, 0x37, + 0x7d, 0x1d, 0x2e, 0x40, 0xa3, 0x2b, 0xd0, 0xe5, 0x12, 0xb4, 0xbb, 0x06, 0xed, 0x2e, 0x42, 0xaf, + 0xab, 0xa0, 0x71, 0x19, 0x44, 0xae, 0x63, 0xfa, 0xa8, 0x72, 0xc2, 0xf0, 0xd6, 0x76, 0xa5, 0x85, + 0xe3, 0x48, 0x89, 0x89, 0x7e, 0x3a, 0x9c, 0x25, 0xf8, 0xe9, 0x5f, 0xde, 0x0f, 0x49, 0xbd, 0x4b, + 0x41, 0x41, 0x83, 0xbe, 0x9b, 0xdc, 0x73, 0xf4, 0x53, 0xfb, 0x72, 0xe6, 0x9e, 0xa7, 0x7f, 0x79, + 0x17, 0x92, 0xab, 0xf5, 0xcf, 0x24, 0x82, 0x59, 0x24, 0xb7, 0x9c, 0xb9, 0x5d, 0xd8, 0x10, 0x5f, + 0xe6, 0xdc, 0x16, 0x37, 0x4a, 0x88, 0x1b, 0x88, 0x1b, 0x88, 0x1b, 0x34, 0x73, 0x56, 0x7a, 0xb9, + 0x77, 0xeb, 0x8c, 0x15, 0x5f, 0xae, 0x88, 0x0d, 0x8e, 0xa7, 0x84, 0x6d, 0xce, 0x2c, 0x77, 0x8c, + 0xca, 0xa1, 0x8a, 0x2f, 0x06, 0xa7, 0xdb, 0xaf, 0x8f, 0x6a, 0x9e, 0x92, 0x3b, 0xf6, 0x75, 0xa5, + 0x54, 0x53, 0x95, 0x11, 0x54, 0xe0, 0xd9, 0xe1, 0xd9, 0xf7, 0xd4, 0xb3, 0x53, 0x89, 0x0a, 0x51, + 0x83, 0xb2, 0x7b, 0x62, 0x63, 0x5b, 0x82, 0xdc, 0x9e, 0xd9, 0x84, 0xb1, 0x51, 0x1b, 0x3e, 0xea, + 0x74, 0x36, 0x09, 0x38, 0x1d, 0xdd, 0xce, 0x27, 0x31, 0x27, 0x94, 0x98, 0x33, 0x4a, 0xc6, 0x29, + 0xd1, 0x3a, 0x27, 0x62, 0x27, 0xa5, 0x0f, 0x43, 0x97, 0x66, 0xbc, 0xfc, 0xa6, 0xe3, 0xd8, 0xf4, + 0x52, 0x3e, 0x48, 0xe7, 0x80, 0x11, 0x0e, 0x16, 0xad, 0x4a, 0xa0, 0x53, 0x2d, 0x80, 0xfb, 0x87, + 0xfb, 0x87, 0xfb, 0x87, 0xfb, 0x97, 0x2a, 0x9f, 0x27, 0x1d, 0x02, 0x8e, 0x35, 0xb4, 0x2d, 0x55, + 0x9e, 0x4f, 0xba, 0xa3, 0x86, 0xe5, 0xfc, 0x16, 0xab, 0xd3, 0xfd, 0xa1, 0xcb, 0xc8, 0x24, 0x8a, + 0x01, 0x8a, 0xfe, 0xf7, 0xb7, 0xb6, 0x96, 0xe7, 0xfa, 0xad, 0x55, 0xbf, 0xa9, 0x37, 0xbe, 0xde, + 0xdf, 0xd5, 0x8b, 0xda, 0xbe, 0xef, 0xe7, 0x87, 0xac, 0x77, 0xd2, 0xc3, 0xfd, 0xb7, 0x56, 0xfd, + 0x01, 0x3d, 0xb4, 0xbe, 0x87, 0xae, 0xee, 0x2f, 0x9b, 0xd7, 0xcd, 0xf6, 0x65, 0xed, 0xe2, 0xa6, + 0xde, 0xbe, 0xaa, 0xff, 0xf3, 0xfa, 0x12, 0x13, 0x6a, 0x43, 0x77, 0x35, 0x5b, 0xb5, 0xd6, 0xf5, + 0xfd, 0x5d, 0xfb, 0xfe, 0xee, 0xe6, 0x0f, 0xf4, 0xd3, 0x86, 0x7e, 0x6a, 0xff, 0xf3, 0xa6, 0x76, + 0x87, 0x1e, 0x5a, 0xdf, 0x43, 0xf7, 0xad, 0xaf, 0xf0, 0x4c, 0x9b, 0x3a, 0xe8, 0x12, 0x53, 0x68, + 0x4b, 0x0f, 0xdd, 0xd6, 0x2e, 0xdb, 0x17, 0x0f, 0xd7, 0x57, 0x5f, 0xe0, 0xb2, 0x37, 0x31, 0x40, + 0xbd, 0x51, 0xaf, 0x81, 0x02, 0x36, 0xc3, 0xe4, 0xef, 0xf7, 0xed, 0x61, 0xc1, 0xde, 0xc1, 0x94, + 0x7a, 0xa8, 0xdf, 0xd4, 0x10, 0xdc, 0x36, 0xf4, 0xd6, 0xef, 0x37, 0xb5, 0xbb, 0x76, 0xed, 0xf2, + 0xb2, 0xde, 0x6c, 0xb6, 0x1b, 0xf7, 0xd7, 0x77, 0x2d, 0x8d, 0x9d, 0xa5, 0xa5, 0xe5, 0xa7, 0xb4, + 0xa7, 0xfb, 0xd8, 0x34, 0x27, 0xd4, 0x6e, 0x12, 0x9b, 0xe6, 0x28, 0xd7, 0xdf, 0x0b, 0xc9, 0xec, + 0x99, 0x5b, 0x71, 0x7a, 0xea, 0xee, 0xe6, 0xd1, 0x6e, 0x77, 0x7c, 0x6f, 0x3f, 0xab, 0x38, 0x76, + 0x53, 0x42, 0xa5, 0xc8, 0xb7, 0xb6, 0x26, 0x53, 0xaa, 0x7c, 0x7b, 0xa3, 0x12, 0xa5, 0xcc, 0xb7, + 0x36, 0x2a, 0x54, 0xea, 0x5c, 0xf7, 0x78, 0x12, 0x7b, 0x92, 0x24, 0x3c, 0x48, 0x91, 0x64, 0x6f, + 0x91, 0x66, 0x9f, 0xa1, 0xe6, 0x2d, 0x7e, 0x66, 0xe4, 0x15, 0x2f, 0xa2, 0xd9, 0xa3, 0x6d, 0xd6, + 0xa8, 0xbc, 0x63, 0xa8, 0x67, 0x8a, 0xc8, 0xcd, 0x0b, 0xf1, 0x51, 0x95, 0x18, 0x51, 0xd5, 0x97, + 0x70, 0x68, 0x5e, 0xba, 0x21, 0x7b, 0xd5, 0xb5, 0x84, 0x57, 0x5d, 0x17, 0x02, 0x37, 0x5e, 0x75, + 0xdd, 0x2b, 0x3f, 0xa8, 0xfa, 0x72, 0x0a, 0xa5, 0x07, 0x54, 0x78, 0xe9, 0x24, 0x21, 0xdf, 0xd7, + 0x0f, 0xb9, 0xdf, 0x35, 0xb8, 0xfb, 0x46, 0xf1, 0xc6, 0xff, 0x4c, 0x63, 0x78, 0xe1, 0x1f, 0x5e, + 0x70, 0x4f, 0xbc, 0xa0, 0xf2, 0x0b, 0xff, 0xdc, 0x7d, 0xa3, 0x7b, 0xd3, 0x7f, 0xd0, 0x18, 0x5e, + 0xf1, 0x4f, 0xc0, 0x38, 0xa9, 0x8d, 0x54, 0x9b, 0xb1, 0x6a, 0x33, 0x5a, 0x3d, 0xc6, 0x9b, 0x0e, + 0xc1, 0x07, 0xaf, 0xf8, 0xa7, 0xc1, 0xf4, 0x75, 0xb8, 0x00, 0x8d, 0xae, 0x40, 0x97, 0x4b, 0xd0, + 0xee, 0x1a, 0xb4, 0xbb, 0x08, 0xbd, 0xae, 0x82, 0xc6, 0x65, 0x10, 0xb9, 0x0e, 0x5d, 0x1a, 0xa3, + 0x9e, 0x6c, 0x69, 0x8a, 0xec, 0x87, 0xdc, 0x7d, 0x4b, 0xf7, 0xab, 0xfd, 0xc3, 0x7b, 0x6d, 0xb9, + 0x6f, 0x61, 0xbb, 0xe5, 0xbe, 0xe5, 0xf0, 0x8d, 0x7e, 0xbf, 0xef, 0xd0, 0xc7, 0x89, 0x41, 0xa3, + 0x78, 0x9f, 0x1f, 0x41, 0x02, 0x41, 0x22, 0x95, 0x41, 0x02, 0xef, 0xf3, 0x2f, 0xbe, 0xcf, 0x3f, + 0x70, 0x58, 0xf9, 0x72, 0xea, 0x46, 0xd8, 0x7f, 0xe6, 0x94, 0xe3, 0x3c, 0xeb, 0xdc, 0xa3, 0xc6, + 0xe1, 0xe4, 0xe1, 0xe4, 0xe1, 0xe4, 0xe1, 0xe4, 0xb3, 0xe2, 0xe4, 0x23, 0xc7, 0x85, 0xda, 0x2d, + 0xdb, 0x46, 0x19, 0xb5, 0x5b, 0xe0, 0xe0, 0xe1, 0xe0, 0x53, 0xec, 0xe0, 0xc9, 0x6b, 0xb7, 0x50, + 0x4a, 0x01, 0x1a, 0x25, 0x01, 0x4d, 0xd4, 0xa8, 0x8d, 0x1e, 0x75, 0x3a, 0x99, 0x04, 0x9c, 0x8d, + 0x6e, 0xa7, 0x93, 0x98, 0xf3, 0x49, 0xcc, 0x09, 0x25, 0xe3, 0x8c, 0x68, 0x9d, 0x12, 0xb1, 0x73, + 0xd2, 0x47, 0xa1, 0x2b, 0x38, 0x25, 0x70, 0xbc, 0x17, 0x9d, 0xef, 0xeb, 0x9f, 0xed, 0x41, 0xc9, + 0x16, 0x1d, 0x8a, 0x41, 0x02, 0xca, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, + 0x01, 0x61, 0x2c, 0xd0, 0x1b, 0x04, 0xe0, 0xfd, 0xe1, 0xfd, 0xe1, 0xfd, 0xe1, 0xfd, 0xe9, 0x67, + 0xbc, 0xe3, 0xf1, 0xa3, 0x8a, 0x46, 0xe7, 0x7f, 0xa4, 0xa1, 0xe9, 0x07, 0xd3, 0x7b, 0x61, 0xda, + 0x4a, 0x5b, 0xe9, 0x7b, 0xb7, 0xbe, 0x78, 0xeb, 0x78, 0xda, 0x1c, 0xc0, 0x52, 0xd4, 0xfd, 0xa0, + 0xf7, 0x6b, 0x86, 0x05, 0xc6, 0x8a, 0x9f, 0x0a, 0x95, 0x72, 0xf5, 0xb4, 0x7a, 0x76, 0x74, 0x52, + 0x3d, 0xd3, 0xfc, 0x85, 0x9f, 0x03, 0xd3, 0xe2, 0x8e, 0xef, 0x5d, 0x39, 0x2f, 0xce, 0xf0, 0x75, + 0xd7, 0x52, 0x16, 0x2b, 0x37, 0x14, 0x6f, 0xcd, 0x1f, 0x89, 0xcd, 0x81, 0x52, 0xd2, 0x73, 0xe0, + 0x34, 0x47, 0x73, 0xe0, 0x20, 0x1b, 0xad, 0x3e, 0xed, 0x01, 0x5c, 0xbf, 0x8d, 0xe7, 0x99, 0x26, + 0xba, 0x1e, 0x35, 0x0f, 0xbc, 0x06, 0x5e, 0x03, 0xaf, 0x81, 0xd7, 0xa4, 0x33, 0xfe, 0xd9, 0xf1, + 0xcc, 0xe0, 0x5d, 0x23, 0x5f, 0x9f, 0xa3, 0x1e, 0x51, 0x9c, 0xb9, 0x9e, 0xc1, 0x1d, 0xfe, 0x69, + 0xae, 0x43, 0x34, 0xbf, 0xc1, 0x3f, 0x5d, 0xe5, 0x87, 0x08, 0x76, 0x07, 0xe9, 0xd9, 0x03, 0x8a, + 0xcd, 0x9f, 0x69, 0xa5, 0x08, 0xec, 0x0d, 0xda, 0x0d, 0x25, 0x60, 0xf3, 0xa7, 0xb2, 0xca, 0xa3, + 0x75, 0xf3, 0x67, 0xaa, 0x76, 0x7d, 0xa6, 0xa1, 0xac, 0xdc, 0xa0, 0x43, 0x0a, 0x7e, 0xdf, 0x29, + 0xd0, 0xad, 0xca, 0xa3, 0xcc, 0x1c, 0xca, 0xcc, 0x09, 0x81, 0x61, 0xca, 0xca, 0xcb, 0xcd, 0xa1, + 0x20, 0xaa, 0xca, 0xa5, 0x60, 0x92, 0xa4, 0xa4, 0xa4, 0x52, 0x34, 0x31, 0xd2, 0x5c, 0x56, 0xc9, + 0xb1, 0xd5, 0xab, 0x29, 0x39, 0xb6, 0x62, 0x11, 0xa5, 0x12, 0x4a, 0xc9, 0x15, 0x50, 0x44, 0x29, + 0x23, 0xce, 0x4f, 0x99, 0x92, 0x09, 0xa9, 0x98, 0x82, 0x82, 0x97, 0xa9, 0xd7, 0xb1, 0xd3, 0xec, + 0xb1, 0xd4, 0xde, 0x5c, 0x22, 0x79, 0x53, 0x09, 0xc5, 0xdf, 0xe0, 0xb7, 0xf6, 0xaf, 0xf8, 0x9b, + 0xf9, 0xc2, 0xe8, 0x8a, 0xbf, 0x0d, 0x1a, 0xa3, 0x29, 0xfe, 0x56, 0x42, 0xf1, 0xb7, 0x5d, 0x48, + 0x7c, 0x28, 0xfe, 0x96, 0x06, 0x59, 0x86, 0x4c, 0xb2, 0x8b, 0x66, 0x5c, 0xdf, 0xf1, 0xf8, 0x49, + 0x95, 0x62, 0xc2, 0x8d, 0xed, 0x93, 0x60, 0x5b, 0x14, 0xf1, 0x86, 0x37, 0x42, 0x81, 0x53, 0xc7, + 0x86, 0x36, 0x5d, 0x3b, 0x27, 0x26, 0x9b, 0x95, 0xa8, 0xdb, 0xd5, 0xb8, 0x27, 0x89, 0x72, 0x0f, + 0x8d, 0x8e, 0x7d, 0x67, 0xba, 0x87, 0xaa, 0x7c, 0x56, 0xad, 0x9e, 0x9c, 0x56, 0xab, 0xa5, 0xd3, + 0xa3, 0xd3, 0xd2, 0xf9, 0xf1, 0x71, 0xf9, 0x84, 0xfa, 0x1c, 0x58, 0xad, 0xa3, 0x97, 0x12, 0xe5, + 0xfc, 0x69, 0x57, 0xa2, 0x9c, 0x02, 0x52, 0x5b, 0xaf, 0x66, 0x18, 0x3a, 0xa1, 0xa1, 0xa0, 0xcf, + 0x2c, 0xb9, 0xf6, 0x99, 0x36, 0x81, 0x5e, 0x40, 0x2f, 0xa0, 0x57, 0xca, 0xd0, 0x8b, 0xec, 0x45, + 0x34, 0xa2, 0x17, 0xcf, 0x76, 0xed, 0xf9, 0x0c, 0x92, 0x6d, 0x28, 0x2b, 0xdc, 0x9f, 0x41, 0xb1, + 0x6c, 0x09, 0x1f, 0x08, 0x1f, 0x08, 0x1f, 0x48, 0xed, 0x03, 0x69, 0x8d, 0x74, 0xce, 0x19, 0x56, + 0x09, 0xda, 0xaa, 0x7b, 0xfd, 0xee, 0xe0, 0x81, 0x7f, 0x66, 0xd0, 0xb1, 0x52, 0xa2, 0x24, 0x10, + 0x12, 0xee, 0x13, 0xee, 0x13, 0x08, 0x99, 0x4e, 0x4f, 0xe7, 0x9a, 0x21, 0x37, 0xfa, 0x3d, 0x9b, + 0xa2, 0xc4, 0xe1, 0x74, 0xb5, 0x76, 0xa6, 0x51, 0xf8, 0x3e, 0xf8, 0x3e, 0xf8, 0xbe, 0x94, 0xf9, + 0x3e, 0xea, 0x85, 0x8b, 0x2a, 0x16, 0x2e, 0x24, 0x63, 0x86, 0x26, 0x35, 0xfc, 0xbc, 0x52, 0x39, + 0x3a, 0x3a, 0xad, 0x94, 0x8e, 0x4e, 0xce, 0x8e, 0xab, 0xa7, 0xa7, 0xc7, 0x67, 0xa5, 0x33, 0x2c, + 0x65, 0x50, 0x0f, 0x5e, 0x29, 0xb1, 0xc1, 0x3b, 0xc5, 0x4a, 0x86, 0xe8, 0x7f, 0x59, 0x5c, 0xc9, + 0xe8, 0x9a, 0x9e, 0xf9, 0x32, 0xdc, 0x3b, 0x6f, 0x98, 0xb6, 0x1d, 0xb0, 0x30, 0xa4, 0x63, 0xb2, + 0x15, 0x6d, 0x03, 0xcd, 0x80, 0x66, 0x40, 0x33, 0xa4, 0xa5, 0x99, 0xf0, 0x84, 0xc4, 0x2b, 0x1c, + 0xeb, 0xbe, 0x00, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x31, 0x85, 0x3e, 0xb1, 0xe7, 0x07, + 0xdc, 0xb0, 0x59, 0x68, 0x05, 0x4e, 0x8f, 0xe4, 0xed, 0xc3, 0xa8, 0x7f, 0x97, 0x5a, 0x86, 0x17, + 0x84, 0x17, 0x84, 0x17, 0x84, 0x17, 0x4c, 0xab, 0x17, 0xa4, 0x5c, 0x9f, 0x9d, 0x34, 0x08, 0x9f, + 0x07, 0x9f, 0x07, 0x9f, 0x07, 0x9f, 0x97, 0x5e, 0x9f, 0x47, 0x9c, 0x02, 0xcf, 0xb5, 0x0a, 0xef, + 0x07, 0xef, 0x07, 0xef, 0x97, 0x32, 0xef, 0x47, 0x68, 0xa1, 0x05, 0x6c, 0xef, 0x9b, 0xde, 0x7b, + 0xf8, 0x1e, 0x72, 0xd6, 0xd5, 0x93, 0x4b, 0xaf, 0x68, 0x1b, 0xbe, 0x15, 0xbe, 0x15, 0xbe, 0x35, + 0xff, 0x64, 0x49, 0xd0, 0xd6, 0x0d, 0xf3, 0x5e, 0x86, 0x25, 0x46, 0xf0, 0xfa, 0xae, 0x42, 0xb3, + 0x78, 0x7d, 0x37, 0x73, 0x43, 0x55, 0x39, 0xc6, 0xdb, 0xba, 0xc2, 0xff, 0x3d, 0x65, 0x97, 0xbd, + 0xc6, 0x65, 0xe3, 0x68, 0xa1, 0x6b, 0xd8, 0x28, 0x68, 0x0b, 0xb4, 0x05, 0xda, 0x02, 0x6d, 0x81, + 0xb6, 0x40, 0x5b, 0xa0, 0x2d, 0xd0, 0xd6, 0x5e, 0xd3, 0x16, 0xe7, 0x2e, 0x1d, 0x65, 0x0d, 0x1a, + 0x03, 0x5d, 0x81, 0xae, 0x40, 0x57, 0x29, 0xa3, 0xab, 0xbe, 0xe3, 0xf1, 0xf2, 0x09, 0x21, 0x5d, + 0x9d, 0xe0, 0x7d, 0x2e, 0xb0, 0x15, 0xd8, 0x4a, 0x6a, 0xa8, 0x4e, 0x8e, 0x8f, 0x8f, 0x40, 0x57, + 0xd9, 0xa1, 0xab, 0xbd, 0x3f, 0x0e, 0x42, 0xf5, 0xf0, 0x38, 0xc2, 0x83, 0x20, 0x14, 0x4e, 0x87, + 0x93, 0xa8, 0xa8, 0x7e, 0xa0, 0x71, 0xc4, 0x27, 0xa7, 0x00, 0x09, 0x6f, 0x2c, 0x54, 0x3b, 0xe3, + 0x87, 0xe4, 0x4c, 0x1f, 0x92, 0x33, 0x7c, 0xd4, 0xce, 0xec, 0x11, 0xed, 0x6d, 0x45, 0xbb, 0xa2, + 0xb4, 0xa7, 0xa2, 0x54, 0xa1, 0x7e, 0x22, 0x0b, 0x12, 0xb3, 0x9d, 0xf8, 0x16, 0x10, 0xef, 0x93, + 0x31, 0x47, 0x4d, 0x76, 0xb4, 0x08, 0x46, 0x49, 0x60, 0x70, 0x94, 0x07, 0x25, 0xde, 0x58, 0x6c, + 0xef, 0xd9, 0x18, 0xbd, 0x2a, 0x78, 0xd2, 0x83, 0xd4, 0xc9, 0x0e, 0x82, 0x25, 0x0b, 0x84, 0x4f, + 0x6e, 0x90, 0xc9, 0xc5, 0x15, 0x72, 0x6e, 0xd9, 0xdc, 0x5a, 0x39, 0x87, 0x56, 0xce, 0x95, 0xd5, + 0x72, 0x62, 0x5a, 0x4b, 0x16, 0x3d, 0x29, 0xa1, 0x68, 0xf9, 0xfd, 0x81, 0xa5, 0x88, 0xbf, 0xd8, + 0x3e, 0x2d, 0x7b, 0x37, 0x69, 0x41, 0x34, 0x20, 0x4b, 0x55, 0xdc, 0x90, 0x96, 0x9a, 0x54, 0xa4, + 0x25, 0x02, 0x29, 0x49, 0x55, 0x3a, 0x22, 0x93, 0x8a, 0xc8, 0xa4, 0x21, 0x1a, 0x29, 0x48, 0x2f, + 0xf4, 0xc9, 0x1e, 0x1c, 0x52, 0xec, 0x04, 0x66, 0x97, 0x19, 0xb6, 0x13, 0x5a, 0x66, 0x40, 0x70, + 0xcc, 0xd8, 0x7c, 0x73, 0x38, 0x71, 0x0c, 0x27, 0xf7, 0xec, 0x4c, 0x73, 0xcd, 0xea, 0x89, 0x63, + 0xe3, 0x30, 0xa3, 0x54, 0x26, 0x8b, 0xe0, 0x5c, 0x0f, 0x22, 0x19, 0x95, 0xe6, 0xb4, 0x58, 0xc2, + 0x85, 0x08, 0xda, 0x33, 0xc9, 0x89, 0x65, 0x52, 0x1d, 0x7a, 0xdb, 0x4f, 0x9a, 0xb3, 0x75, 0x53, + 0x3f, 0x04, 0xfa, 0xce, 0xe1, 0xd0, 0x32, 0x2a, 0x3b, 0x52, 0x1d, 0x9f, 0x52, 0x7c, 0x6a, 0xe0, + 0x08, 0x1e, 0x58, 0x10, 0xf8, 0x81, 0xa1, 0x60, 0xf3, 0x0b, 0x30, 0x12, 0xb5, 0x07, 0x1a, 0x01, + 0x8d, 0x80, 0x46, 0x40, 0x23, 0xa0, 0x11, 0xd0, 0x08, 0x68, 0x04, 0x34, 0x22, 0x40, 0x23, 0x7e, + 0x9f, 0xd3, 0xe2, 0xc8, 0xa0, 0x41, 0xf0, 0x08, 0x78, 0x04, 0x3c, 0x02, 0x1e, 0x01, 0x8f, 0x80, + 0x47, 0xc0, 0x23, 0xe0, 0x91, 0x58, 0x3c, 0x42, 0xa7, 0x8b, 0x40, 0x11, 0x01, 0x81, 0x80, 0x40, + 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x12, 0x97, 0x40, 0x08, 0xb5, 0x10, 0xa8, + 0x20, 0x60, 0x10, 0x30, 0x08, 0x18, 0x04, 0x0c, 0x02, 0x06, 0x01, 0x83, 0x80, 0x41, 0x62, 0x74, + 0xf3, 0xf0, 0x84, 0x57, 0xcb, 0x65, 0x66, 0xa0, 0x0e, 0x21, 0x33, 0x6d, 0x81, 0x42, 0x40, 0x21, + 0xa0, 0x10, 0xc1, 0x19, 0x63, 0x9b, 0x9c, 0x19, 0xa6, 0x67, 0x1b, 0xdc, 0x51, 0x2a, 0x7f, 0x46, + 0x51, 0x5a, 0xa9, 0xd8, 0x30, 0x39, 0x67, 0x81, 0xa7, 0x0c, 0x23, 0xc5, 0xc7, 0x47, 0xfb, 0xef, + 0xea, 0x4f, 0x63, 0xf0, 0x47, 0x65, 0xf2, 0x47, 0x6b, 0xf4, 0xc7, 0xa7, 0xb9, 0x3f, 0x7e, 0x79, + 0x7c, 0xfc, 0xf8, 0xf8, 0x68, 0xff, 0xe3, 0xd7, 0xff, 0xfc, 0xe5, 0x5f, 0xff, 0xfb, 0xe7, 0xe3, + 0xe3, 0x3f, 0x1e, 0x1f, 0x8d, 0xa7, 0xb9, 0x4f, 0xfc, 0x5a, 0xcc, 0xa5, 0x0f, 0xe6, 0xee, 0x1b, + 0xdd, 0x1b, 0x03, 0xb3, 0x8d, 0xc1, 0x0b, 0xc3, 0x0b, 0xc3, 0x0b, 0x23, 0x17, 0x44, 0x2e, 0x88, + 0x5c, 0x10, 0xb9, 0x20, 0x72, 0xc1, 0x18, 0x1c, 0xd2, 0xf7, 0xbe, 0x7b, 0xfe, 0x5f, 0x1e, 0x0d, + 0x87, 0x4c, 0x1a, 0x03, 0x87, 0x80, 0x43, 0xc0, 0x21, 0xe0, 0x10, 0x70, 0x08, 0x38, 0x04, 0x1c, + 0xb2, 0x5f, 0x1c, 0x92, 0xcf, 0x6a, 0x51, 0xc3, 0x7a, 0x3b, 0x87, 0x92, 0x15, 0x4c, 0x0a, 0x0a, + 0x45, 0x89, 0x86, 0x85, 0xd5, 0xda, 0x97, 0x93, 0x2f, 0xd6, 0x55, 0x25, 0x4a, 0xa0, 0xfc, 0x0e, + 0xf3, 0xcc, 0x67, 0x97, 0xd9, 0xf2, 0x75, 0x60, 0x26, 0x0d, 0x88, 0x96, 0xe8, 0x60, 0x1d, 0xb3, + 0xef, 0x0e, 0x19, 0x61, 0x80, 0x1c, 0x92, 0x55, 0x64, 0x4a, 0xa8, 0x22, 0x93, 0x28, 0x34, 0xee, + 0x55, 0x15, 0x19, 0x69, 0x18, 0x8c, 0x46, 0xfc, 0xd9, 0xf7, 0x5d, 0x66, 0xca, 0x64, 0x50, 0xd1, + 0x22, 0x40, 0x39, 0x05, 0x3e, 0x42, 0xea, 0x90, 0x98, 0xa8, 0x13, 0x24, 0x4e, 0x83, 0x81, 0x79, + 0xc3, 0xbc, 0xb3, 0x60, 0xde, 0x66, 0xc8, 0x8c, 0x88, 0x2a, 0x8c, 0x80, 0x75, 0x54, 0x2c, 0xfd, + 0x54, 0xe2, 0xda, 0x46, 0xc4, 0x3e, 0x96, 0xe1, 0x74, 0x3e, 0xcd, 0xc0, 0xce, 0xc2, 0x2f, 0xc6, + 0x7f, 0x1f, 0xda, 0x22, 0x6a, 0x53, 0xae, 0x65, 0xc2, 0x04, 0xea, 0x52, 0x0a, 0xd4, 0xd6, 0x8d, + 0x51, 0x93, 0xf2, 0x40, 0xa1, 0xaf, 0x27, 0xb5, 0x71, 0x63, 0x38, 0x68, 0xb1, 0x6a, 0xb8, 0x52, + 0xd5, 0x6f, 0xa5, 0xaa, 0xdd, 0x8a, 0x55, 0xb7, 0xdd, 0xd6, 0x1f, 0x82, 0x73, 0x4e, 0x7a, 0xae, + 0x15, 0x63, 0x55, 0x12, 0x95, 0x99, 0x5d, 0x9b, 0xe7, 0xd5, 0xfa, 0xd9, 0xb2, 0xfa, 0x5f, 0xd6, + 0xf4, 0x57, 0xdc, 0x7e, 0x12, 0xec, 0x9f, 0x0d, 0xbd, 0x22, 0xd4, 0x1b, 0xab, 0xfb, 0x60, 0xf9, + 0x09, 0x57, 0x3c, 0xdd, 0x96, 0xfa, 0xad, 0xb1, 0xea, 0xb5, 0x6e, 0x29, 0x70, 0xb9, 0xb5, 0x1e, + 0x6b, 0x1c, 0x16, 0x11, 0x60, 0x8e, 0xb8, 0x6c, 0x21, 0xcc, 0x10, 0xc2, 0xac, 0x20, 0xc6, 0x04, + 0x62, 0x33, 0x72, 0x5b, 0xc1, 0xc7, 0xa2, 0xf5, 0x6a, 0x86, 0xa1, 0x13, 0x1a, 0xce, 0xf6, 0x4c, + 0x77, 0x2a, 0xe1, 0x4e, 0xaf, 0xd9, 0xe6, 0x48, 0x63, 0xe1, 0x6a, 0x6c, 0x3c, 0x15, 0xc1, 0x51, + 0x09, 0xfc, 0x14, 0xc5, 0x4d, 0x69, 0xbc, 0x94, 0xc6, 0x49, 0x39, 0x7c, 0x54, 0x0b, 0x86, 0xb1, + 0x71, 0x50, 0xfc, 0x30, 0xbd, 0xe9, 0x8e, 0x2e, 0x59, 0xf7, 0xfc, 0x21, 0xce, 0xcc, 0x1e, 0x9d, + 0x4f, 0x2f, 0x31, 0xbd, 0xe3, 0x1c, 0x6c, 0x8f, 0x39, 0xbe, 0x97, 0x73, 0x5c, 0x6c, 0x92, 0xcc, + 0x4d, 0xf6, 0x6a, 0x8c, 0xcf, 0xd6, 0xbd, 0x7e, 0x77, 0x70, 0x43, 0x3f, 0x75, 0x18, 0x46, 0xdc, + 0x12, 0xd7, 0xa2, 0x25, 0xad, 0x63, 0x96, 0xb0, 0x86, 0x29, 0xa4, 0xd9, 0x14, 0xe2, 0x96, 0x88, + 0x2e, 0x32, 0x8f, 0x07, 0x0e, 0x0b, 0x0d, 0xf3, 0x85, 0xd9, 0x42, 0x6f, 0xfb, 0xcd, 0x28, 0xe4, + 0x0b, 0x2d, 0x88, 0x15, 0xfa, 0x2f, 0x89, 0x16, 0xfa, 0x2f, 0xa1, 0xd0, 0x3f, 0xa9, 0xa8, 0x95, + 0xa6, 0x42, 0xff, 0xc2, 0xa2, 0x95, 0xd2, 0x86, 0x04, 0x89, 0x0d, 0x08, 0x92, 0x1b, 0x0e, 0xe4, + 0x8e, 0xd8, 0x51, 0x50, 0x4c, 0xd5, 0x36, 0x27, 0x29, 0x6e, 0x18, 0xa0, 0x58, 0x8a, 0xfe, 0x29, + 0x77, 0xa0, 0xd0, 0xce, 0xbb, 0x8c, 0x6e, 0x81, 0x9f, 0xa4, 0x17, 0x35, 0x89, 0xa1, 0x4f, 0x09, + 0x1e, 0x3a, 0x23, 0x77, 0x68, 0x81, 0xd2, 0x21, 0x05, 0x88, 0x4d, 0x88, 0x4d, 0x88, 0x4d, 0x88, + 0x4d, 0x88, 0x4d, 0x88, 0x4d, 0x31, 0x62, 0x93, 0x70, 0x11, 0x7b, 0xb5, 0xa2, 0xf5, 0x88, 0x4e, + 0x88, 0x4e, 0x88, 0x4e, 0x88, 0x4e, 0x88, 0x4e, 0x88, 0x4e, 0x31, 0xa2, 0x93, 0x7c, 0x5c, 0x42, + 0x44, 0x42, 0x44, 0x42, 0x44, 0x42, 0x44, 0x42, 0x44, 0x42, 0x44, 0xa2, 0x8c, 0x48, 0x52, 0xcb, + 0x4c, 0xa2, 0x45, 0x24, 0x11, 0x93, 0x10, 0x93, 0x10, 0x93, 0x10, 0x93, 0x10, 0x93, 0x10, 0x93, + 0x36, 0x76, 0x83, 0x44, 0x91, 0x41, 0xf9, 0xa2, 0x82, 0x88, 0x4a, 0x88, 0x4a, 0x84, 0x51, 0x49, + 0xb6, 0x28, 0x9f, 0x4c, 0x11, 0x3e, 0xe9, 0xa2, 0x7b, 0x3b, 0x2a, 0xb2, 0x97, 0xa4, 0x0f, 0xe1, + 0xee, 0x9b, 0x61, 0x5a, 0x16, 0xeb, 0x71, 0x26, 0xb1, 0x44, 0x3d, 0x77, 0x35, 0xfc, 0x08, 0xfc, + 0x08, 0xe8, 0x16, 0x74, 0x0b, 0xba, 0x05, 0xdd, 0x12, 0x45, 0x26, 0xe9, 0xbd, 0x53, 0xe2, 0xe5, + 0x5a, 0x11, 0x97, 0x10, 0x97, 0x10, 0x97, 0x10, 0x97, 0x10, 0x97, 0x10, 0x97, 0xb6, 0xc6, 0x25, + 0xd1, 0x72, 0x9e, 0x0a, 0xe5, 0x3b, 0x11, 0x97, 0x10, 0x97, 0x10, 0x97, 0x10, 0x97, 0x10, 0x97, + 0xf6, 0x39, 0x2e, 0xa5, 0xae, 0x7c, 0x8a, 0x70, 0xa5, 0xc6, 0x18, 0xa5, 0x42, 0x44, 0x8a, 0x30, + 0xca, 0xbd, 0x7a, 0x1c, 0xb7, 0xa8, 0xa2, 0x60, 0x11, 0x45, 0xc1, 0xa2, 0x89, 0x78, 0x65, 0x9f, + 0x38, 0x44, 0x67, 0xe3, 0x95, 0xfd, 0xf8, 0x45, 0x07, 0x63, 0x16, 0x19, 0x94, 0xb3, 0x81, 0x57, + 0xe6, 0xba, 0xfe, 0x70, 0xd9, 0x25, 0x88, 0x6f, 0x07, 0xb3, 0x17, 0x61, 0x72, 0x63, 0x72, 0x2f, + 0xf5, 0x78, 0xdf, 0xf1, 0x78, 0x2c, 0xa8, 0x14, 0x80, 0x49, 0x41, 0x88, 0x14, 0xa0, 0x61, 0x19, + 0x68, 0x94, 0xad, 0x7d, 0x29, 0x09, 0x89, 0x2a, 0x58, 0x23, 0x52, 0x43, 0x54, 0x06, 0x06, 0x55, + 0xbb, 0x42, 0x1d, 0xfe, 0x94, 0x7a, 0x87, 0x08, 0xca, 0x9e, 0x34, 0x38, 0xe7, 0xb0, 0xdf, 0xeb, + 0x05, 0x2c, 0x0c, 0x8d, 0xe1, 0xca, 0xaa, 0xfd, 0xc6, 0x02, 0xee, 0x84, 0x6c, 0x6c, 0xfd, 0x31, + 0x7d, 0xf5, 0x86, 0x36, 0xe0, 0xba, 0xe1, 0xba, 0x97, 0x7a, 0xdc, 0xb1, 0x99, 0xc7, 0x1d, 0xfe, + 0x1e, 0xaf, 0x4c, 0x6a, 0xc4, 0x26, 0x31, 0x2c, 0xb6, 0x78, 0x3d, 0x6e, 0xfa, 0xc2, 0x0c, 0x99, + 0xb8, 0x58, 0x76, 0x73, 0x73, 0xd5, 0x68, 0xb7, 0x6e, 0xfe, 0x19, 0x77, 0x98, 0x86, 0xee, 0x25, + 0x14, 0x12, 0x1d, 0x24, 0x4b, 0x27, 0x37, 0xee, 0x1f, 0x5a, 0xed, 0xab, 0x7a, 0xf3, 0xf2, 0xe1, + 0xba, 0xd1, 0xba, 0xbe, 0xbf, 0x2b, 0xea, 0x70, 0xcd, 0x92, 0xf7, 0xd6, 0xfc, 0xa3, 0xd9, 0xaa, + 0xdf, 0xb6, 0x2f, 0x6b, 0x8d, 0xda, 0xc5, 0xf5, 0xcd, 0x75, 0xeb, 0xba, 0xde, 0x4c, 0xe1, 0xed, + 0xa5, 0xb4, 0xf3, 0x2e, 0xbf, 0xd6, 0x9a, 0xcd, 0xeb, 0x66, 0xfb, 0xfa, 0x2a, 0x4d, 0x77, 0x75, + 0x5b, 0xbb, 0xab, 0x7d, 0xa9, 0xdf, 0xd6, 0xef, 0x5a, 0xed, 0xda, 0xd5, 0xd5, 0x43, 0xbd, 0x99, + 0xaa, 0x11, 0x1d, 0x1a, 0x43, 0xba, 0x3a, 0x6c, 0x3c, 0xc9, 0xee, 0x6a, 0xb7, 0x75, 0x6a, 0x89, + 0xf6, 0x49, 0xb3, 0xff, 0xce, 0x47, 0x41, 0x5f, 0x39, 0xf8, 0x79, 0x0f, 0x39, 0xeb, 0x1a, 0x36, + 0x0b, 0xad, 0xc0, 0xe9, 0xc5, 0xd2, 0xab, 0xa6, 0xd0, 0xb3, 0x7c, 0x2d, 0x60, 0x07, 0xb0, 0xb3, + 0x3c, 0x4f, 0xc4, 0x6b, 0x83, 0xc6, 0xf8, 0xec, 0x0d, 0xf3, 0x5e, 0x86, 0x6a, 0x29, 0x32, 0xd5, + 0x7c, 0x65, 0xaa, 0x95, 0x63, 0x24, 0xa6, 0xb3, 0xbe, 0x39, 0xd6, 0x89, 0x23, 0x8b, 0x4e, 0x39, + 0x4e, 0x1d, 0x7b, 0x78, 0x63, 0x78, 0x63, 0x78, 0x63, 0x78, 0x63, 0x78, 0xe3, 0xcd, 0xff, 0x92, + 0xc4, 0xd1, 0x0f, 0xdb, 0x4e, 0x5c, 0x89, 0xbb, 0x94, 0x1b, 0xfb, 0xc0, 0x87, 0x83, 0x0d, 0x4f, + 0xb8, 0xed, 0xc9, 0xe2, 0x3c, 0x51, 0x71, 0xe5, 0x89, 0x12, 0x5b, 0x9e, 0x61, 0xfe, 0xee, 0xa7, + 0xf7, 0x38, 0x73, 0x7f, 0x45, 0xce, 0x82, 0xae, 0xe3, 0x99, 0xae, 0x61, 0xb3, 0x37, 0x67, 0x45, + 0x3c, 0x98, 0xee, 0xfb, 0x5a, 0xf8, 0xe0, 0xc2, 0x33, 0xae, 0x2e, 0x5c, 0xbd, 0x36, 0xda, 0x6d, + 0x8a, 0x6e, 0xb3, 0xd1, 0xcc, 0xef, 0x71, 0x63, 0xf0, 0xcd, 0xab, 0x9e, 0x7f, 0x4b, 0x04, 0x8b, + 0x1d, 0xb1, 0x62, 0x47, 0xa8, 0xc5, 0x88, 0x14, 0xdd, 0x9c, 0xe0, 0x7c, 0x58, 0x57, 0x20, 0xba, + 0x68, 0x4d, 0x7a, 0x6b, 0xcb, 0x21, 0x21, 0xe3, 0xcf, 0x29, 0x9e, 0x12, 0x52, 0xa2, 0x39, 0x25, + 0x64, 0xc3, 0x10, 0x89, 0xc2, 0x46, 0xf2, 0x27, 0x85, 0xac, 0x1f, 0xc2, 0x5d, 0x39, 0xb1, 0x05, + 0x3b, 0x3b, 0x5c, 0xfc, 0xfb, 0xc6, 0xb1, 0xdf, 0xe8, 0x17, 0x5a, 0xe3, 0x96, 0xae, 0x86, 0x0d, + 0xb5, 0x17, 0xfe, 0x3a, 0x9e, 0x16, 0x0a, 0x27, 0xdc, 0xb8, 0xfe, 0x8b, 0x63, 0x99, 0xae, 0x61, + 0xbd, 0x9a, 0x9e, 0xc7, 0xdc, 0x70, 0xfb, 0x3c, 0x5e, 0xba, 0x02, 0x33, 0x3a, 0x75, 0x33, 0x3a, + 0xce, 0xf9, 0x37, 0x83, 0xc1, 0x13, 0x3a, 0x1d, 0x64, 0x78, 0x41, 0x36, 0x8e, 0x42, 0x88, 0x31, + 0x19, 0xb2, 0x9b, 0x53, 0x6d, 0x9f, 0x2c, 0x34, 0x79, 0x55, 0xec, 0x23, 0x11, 0xb6, 0x44, 0x40, + 0xb9, 0x88, 0x28, 0x39, 0xb5, 0x84, 0xa7, 0x98, 0xcc, 0x54, 0x53, 0x9c, 0x72, 0xb2, 0x53, 0x4f, + 0x79, 0x0a, 0x2a, 0x4f, 0x45, 0xf5, 0x29, 0x29, 0x98, 0xe6, 0xc4, 0x1c, 0xbb, 0xb8, 0x53, 0x35, + 0xba, 0xc0, 0xb4, 0xbb, 0x8e, 0x67, 0x6c, 0x3e, 0xde, 0x6d, 0xeb, 0xa8, 0xcf, 0x36, 0xb2, 0x1f, + 0x07, 0xda, 0x4a, 0x4c, 0x72, 0xd5, 0xc9, 0x4e, 0x36, 0xe9, 0xc9, 0x26, 0x3f, 0x9d, 0x11, 0x88, + 0x19, 0x83, 0x84, 0x5c, 0x52, 0xa0, 0x39, 0xd8, 0x76, 0x66, 0xa2, 0xc7, 0x3d, 0xf6, 0x69, 0xad, + 0xfb, 0xae, 0x4a, 0x5c, 0x1b, 0xef, 0x58, 0x28, 0xf9, 0x5e, 0x15, 0x11, 0xa0, 0x44, 0x96, 0x09, + 0xd7, 0x76, 0x68, 0xfc, 0xf5, 0x42, 0x78, 0x0e, 0x78, 0x8e, 0x0c, 0x7b, 0x8e, 0xd8, 0x4a, 0xfb, + 0x7a, 0xe5, 0x3d, 0x05, 0x36, 0xef, 0x78, 0x36, 0xfb, 0x21, 0x6f, 0xed, 0xa3, 0xcb, 0x61, 0xe7, + 0xb0, 0xf3, 0xdc, 0xda, 0x79, 0xdf, 0xf1, 0xf8, 0x51, 0x45, 0xc1, 0xce, 0x65, 0x4e, 0xbb, 0x97, + 0x7b, 0xd9, 0x73, 0xf2, 0x9f, 0xdc, 0x24, 0x2b, 0xa8, 0xbe, 0xfc, 0xa9, 0x68, 0xe0, 0x4b, 0xcd, + 0x28, 0xbe, 0x0c, 0x1a, 0xb5, 0x43, 0xf0, 0x3a, 0xa3, 0xe4, 0xf4, 0x9b, 0xef, 0x5a, 0x85, 0x97, + 0x44, 0x75, 0x75, 0x6d, 0xb5, 0x72, 0x5e, 0x3d, 0x3f, 0x39, 0xad, 0x9c, 0x1f, 0xa7, 0xa8, 0x8f, + 0x0f, 0x92, 0xb9, 0xea, 0x29, 0x05, 0xe1, 0x77, 0x41, 0x71, 0x8e, 0x77, 0xae, 0xf1, 0x5a, 0x57, + 0xb5, 0xb2, 0x35, 0x04, 0x67, 0x04, 0xe7, 0xdc, 0x06, 0x67, 0xb1, 0x37, 0x2d, 0xd6, 0x92, 0xb8, + 0x84, 0xf7, 0x93, 0x7b, 0x13, 0x63, 0xed, 0x83, 0xdc, 0xdc, 0x7f, 0xb9, 0xbe, 0xac, 0xdd, 0xb4, + 0xeb, 0x37, 0xa3, 0x5d, 0xe9, 0x8d, 0x87, 0xfb, 0xd6, 0xfd, 0xe5, 0xfd, 0x4d, 0xbb, 0xf5, 0x47, + 0xa3, 0x5e, 0x54, 0x29, 0x0d, 0x10, 0x4a, 0x63, 0x84, 0x1a, 0x4a, 0xcc, 0x3d, 0xde, 0xe0, 0x71, + 0xda, 0xf7, 0xad, 0xbb, 0xe2, 0x2e, 0x22, 0x2f, 0xe5, 0x33, 0xd4, 0x5b, 0x5f, 0xeb, 0x0f, 0x77, + 0xf5, 0x56, 0x31, 0xe1, 0xf0, 0xf6, 0x94, 0x9a, 0x0a, 0x0c, 0x62, 0xe1, 0xcd, 0xef, 0x3d, 0x9b, + 0xd6, 0x77, 0xa3, 0xeb, 0xdb, 0x4a, 0x71, 0x6d, 0xb6, 0x19, 0x04, 0x34, 0x04, 0xb4, 0xdc, 0x06, + 0xb4, 0xb9, 0xa9, 0xbe, 0x5b, 0x45, 0x5a, 0xe2, 0xda, 0x99, 0xaa, 0x1d, 0x77, 0xf7, 0x77, 0xf5, + 0x62, 0x0a, 0x5c, 0x50, 0x60, 0x72, 0x66, 0x58, 0xae, 0x19, 0x86, 0xf2, 0xfe, 0x67, 0xa6, 0x0d, + 0x38, 0x1f, 0x38, 0x1f, 0xd0, 0x74, 0xda, 0x69, 0xba, 0xf5, 0x70, 0x7d, 0xf1, 0xad, 0x55, 0x7b, + 0xf8, 0xa3, 0xfd, 0x50, 0x6b, 0xd5, 0xdb, 0x97, 0x37, 0xb5, 0x66, 0x33, 0x27, 0x24, 0x3d, 0x78, + 0xb4, 0xd1, 0x53, 0x1d, 0x97, 0x4a, 0x5f, 0xb2, 0xcc, 0xd3, 0xd3, 0x27, 0x39, 0xcb, 0xcd, 0x93, + 0x94, 0xcb, 0xb9, 0x79, 0x94, 0x6a, 0x5e, 0x1e, 0xe4, 0x24, 0x47, 0x43, 0x92, 0x1b, 0x3b, 0xc9, + 0xd1, 0x93, 0xe4, 0xe5, 0x41, 0x72, 0xf2, 0x1c, 0x95, 0x8f, 0xc7, 0x79, 0x79, 0x92, 0xdc, 0x18, + 0xc9, 0x79, 0x6e, 0x9e, 0xa4, 0x72, 0x9c, 0x1b, 0x7b, 0xcf, 0xcd, 0x93, 0x9c, 0xe6, 0x29, 0x2c, + 0xe6, 0xe5, 0x51, 0x8e, 0xd4, 0x9e, 0x64, 0x8f, 0x44, 0x72, 0xce, 0x42, 0x6e, 0x84, 0xce, 0x8b, + 0x67, 0xba, 0xf2, 0x12, 0xd5, 0x6c, 0x23, 0xd0, 0xa8, 0xa0, 0x51, 0xe5, 0x56, 0xa3, 0x8a, 0x5f, + 0xf3, 0x77, 0xad, 0x3e, 0x55, 0x4e, 0x83, 0xd1, 0x07, 0xce, 0xb3, 0xd1, 0x0b, 0x7c, 0xee, 0x5b, + 0xbe, 0x8a, 0xd9, 0xcf, 0x35, 0x03, 0xc3, 0x87, 0xe1, 0x43, 0x9c, 0xde, 0x6c, 0xfc, 0x69, 0x12, + 0xa7, 0xf3, 0xb8, 0xc9, 0xa3, 0xfc, 0xa5, 0x9e, 0xf9, 0x4d, 0x1e, 0xf7, 0xad, 0x6f, 0xd5, 0xec, + 0x3f, 0xc4, 0xd5, 0xb7, 0xa3, 0xcc, 0x3f, 0x44, 0xb3, 0x75, 0x5b, 0x39, 0x3e, 0xc9, 0xfe, 0x58, + 0x5c, 0x9e, 0x9e, 0x9c, 0xe5, 0xe0, 0x29, 0xaa, 0x67, 0x79, 0xb0, 0xed, 0x4a, 0xf6, 0x3d, 0x54, + 0xb9, 0xf4, 0xa5, 0xde, 0xbe, 0xa9, 0xdd, 0xe5, 0x61, 0x38, 0x8e, 0xf2, 0xe0, 0x6a, 0x73, 0x31, + 0xa7, 0x4a, 0x39, 0x88, 0xdd, 0xcd, 0xd6, 0x6d, 0xf9, 0x24, 0x17, 0x63, 0xd1, 0xbe, 0xbd, 0xf9, + 0x92, 0x07, 0xd3, 0xb8, 0xbc, 0xcb, 0x87, 0xbb, 0xfd, 0x3d, 0x1f, 0xee, 0xb6, 0x9c, 0x0b, 0x3e, + 0xaf, 0xe4, 0xe1, 0x21, 0x72, 0x60, 0x19, 0x83, 0xd0, 0x97, 0x87, 0x98, 0x71, 0x92, 0xfd, 0x84, + 0xaf, 0x9a, 0x87, 0xf0, 0x7d, 0x7f, 0x95, 0x87, 0xd4, 0xfb, 0xb2, 0x7c, 0x5e, 0xd9, 0xe3, 0xc5, + 0x2f, 0xd2, 0x02, 0x48, 0x82, 0x67, 0x6d, 0x46, 0xd7, 0xc9, 0x97, 0x34, 0x5c, 0x2c, 0x03, 0x78, + 0x38, 0xfe, 0xe1, 0x50, 0xa8, 0xaa, 0x57, 0x41, 0xbe, 0xf6, 0xe1, 0xcd, 0xe8, 0x06, 0x2e, 0xc7, + 0xdf, 0xdf, 0x1e, 0xff, 0xb0, 0xb1, 0x26, 0xa2, 0xf8, 0x20, 0xc4, 0x39, 0x9a, 0x9b, 0xf1, 0x57, + 0x16, 0x78, 0x8c, 0x8b, 0x57, 0x40, 0x8b, 0xae, 0x44, 0x0d, 0x34, 0xd4, 0x40, 0x53, 0x74, 0x01, + 0xc2, 0x35, 0xd0, 0x04, 0xcb, 0xf6, 0x2d, 0x0d, 0xb8, 0xb0, 0xa1, 0x4b, 0x4c, 0x61, 0xe9, 0xa9, + 0xac, 0x32, 0xa5, 0x89, 0xa6, 0xb6, 0xea, 0x14, 0x27, 0x9b, 0xea, 0x64, 0x53, 0x9e, 0x6e, 0xea, + 0x4b, 0x46, 0x57, 0xc1, 0xb1, 0x17, 0x35, 0x89, 0xe8, 0x42, 0xd3, 0x0d, 0x0d, 0x9b, 0xb9, 0xe6, + 0xbb, 0xfa, 0x42, 0xd6, 0xb4, 0x29, 0xc9, 0xbe, 0x9e, 0x79, 0x5d, 0xac, 0x24, 0xdb, 0x86, 0xe2, + 0xe9, 0xe9, 0xb2, 0xc6, 0x47, 0x61, 0x84, 0xc4, 0xc6, 0x48, 0x65, 0x94, 0xe4, 0xc6, 0x49, 0x6e, + 0xa4, 0xf4, 0xc6, 0xaa, 0x86, 0xde, 0x92, 0x69, 0x87, 0xfc, 0xa2, 0xf8, 0xd2, 0xcc, 0x91, 0x2e, + 0x52, 0xb4, 0x68, 0x47, 0xa7, 0x0a, 0x4d, 0xa8, 0x15, 0x2d, 0xa2, 0x49, 0xc4, 0x0a, 0x54, 0x45, + 0x8c, 0x88, 0x1c, 0xcc, 0x52, 0x73, 0x44, 0x45, 0x8d, 0xa2, 0xf6, 0x08, 0x0b, 0xef, 0x10, 0x64, + 0xd1, 0xd3, 0x21, 0x20, 0x28, 0x76, 0xa4, 0x7b, 0x08, 0xa8, 0x8a, 0x1f, 0x69, 0x1d, 0x8b, 0x83, + 0xdd, 0x5c, 0xfd, 0x94, 0x50, 0x11, 0x26, 0x99, 0xb7, 0xcc, 0x2d, 0xd7, 0x61, 0x1e, 0x37, 0x4c, + 0x37, 0x54, 0x67, 0x98, 0x99, 0xb6, 0xd4, 0x21, 0x26, 0x2a, 0x0e, 0x02, 0x96, 0x01, 0xcb, 0x80, + 0x65, 0x24, 0x67, 0x0e, 0xf3, 0xfa, 0x5d, 0x16, 0x98, 0x12, 0x15, 0x84, 0x57, 0x66, 0xe3, 0x55, + 0x85, 0x36, 0xe4, 0xaa, 0x33, 0x2b, 0x78, 0x43, 0xad, 0x39, 0xa3, 0xa4, 0x92, 0xaa, 0x53, 0x51, + 0x9d, 0xa8, 0x84, 0x87, 0x52, 0x8a, 0x8b, 0x06, 0x89, 0xb5, 0x3e, 0xbe, 0x21, 0x21, 0xad, 0x55, + 0x7c, 0xf8, 0x84, 0x8a, 0x28, 0xb9, 0x76, 0x4f, 0xa1, 0x76, 0x52, 0xbc, 0xf3, 0x17, 0x21, 0x64, + 0x41, 0xc8, 0xca, 0x96, 0x90, 0x25, 0xa9, 0xf1, 0x2e, 0x13, 0xa0, 0xac, 0xe7, 0x51, 0x30, 0x15, + 0x20, 0x1b, 0x90, 0x6d, 0xf7, 0xc8, 0x26, 0x6b, 0x7a, 0x51, 0x03, 0xcc, 0x33, 0x9f, 0x5d, 0x66, + 0xab, 0x0f, 0xf5, 0x14, 0xfd, 0x46, 0x0d, 0x2a, 0x8e, 0xcb, 0x4c, 0x4a, 0xd6, 0x31, 0xdd, 0x90, + 0xa9, 0xb6, 0x47, 0x54, 0x74, 0x59, 0xd5, 0xd8, 0x29, 0x8d, 0x5e, 0x93, 0xf1, 0x53, 0x3b, 0x01, + 0x6d, 0xce, 0x40, 0x9b, 0x53, 0xd0, 0xe7, 0x1c, 0x88, 0x24, 0x21, 0xc5, 0xb9, 0xa7, 0x9c, 0xe7, + 0x2d, 0xcd, 0x3c, 0xf9, 0x37, 0x3a, 0xd7, 0x46, 0xe3, 0xf2, 0x8e, 0x54, 0x33, 0x95, 0xf2, 0xf0, + 0xa1, 0xe7, 0xfb, 0x3d, 0xc7, 0x7b, 0xa1, 0xf3, 0xa6, 0x51, 0x8b, 0x70, 0xa7, 0x70, 0xa7, 0x70, + 0xa7, 0x70, 0xa7, 0x99, 0x73, 0xa7, 0x89, 0xe2, 0xb0, 0xa2, 0x3c, 0x96, 0x88, 0x4c, 0x36, 0x3c, + 0x80, 0x5d, 0x29, 0x63, 0xd5, 0xa9, 0x99, 0x0d, 0x4f, 0x7a, 0x97, 0x11, 0xce, 0x14, 0x14, 0x53, + 0x09, 0xad, 0xc7, 0x63, 0xce, 0xcb, 0xeb, 0xb3, 0x1f, 0x10, 0x2c, 0x1f, 0x4d, 0x9b, 0xda, 0xb1, + 0x7e, 0x50, 0x81, 0x7e, 0x00, 0xfd, 0x20, 0x6b, 0xfa, 0xc1, 0xc4, 0x7a, 0xe8, 0x90, 0x37, 0x6a, + 0x91, 0x06, 0x51, 0xcb, 0x40, 0x54, 0x20, 0xea, 0xbe, 0x23, 0xaa, 0xaa, 0x99, 0x47, 0x0d, 0x29, + 0x2a, 0xf6, 0x6b, 0x27, 0xb2, 0x32, 0x0f, 0x69, 0x30, 0x7d, 0x72, 0x17, 0xa0, 0xc3, 0x15, 0x68, + 0x76, 0x09, 0xba, 0x5c, 0x83, 0x76, 0x17, 0xa1, 0xdd, 0x55, 0xe8, 0x77, 0x19, 0x34, 0xae, 0x83, + 0xc8, 0x85, 0x50, 0xa7, 0x58, 0xc9, 0xa7, 0x5c, 0x11, 0xe7, 0x47, 0x3f, 0x1d, 0x92, 0x7a, 0x1d, + 0xed, 0x59, 0xd9, 0xdd, 0xe4, 0x01, 0xa2, 0x9f, 0x94, 0x12, 0x35, 0xfa, 0x69, 0x46, 0xb1, 0xe9, + 0xd4, 0xea, 0x87, 0xdc, 0xef, 0x1a, 0xdc, 0x7d, 0x0b, 0x35, 0x44, 0x99, 0x99, 0xc6, 0x53, 0x1e, + 0x6a, 0x2a, 0xd9, 0x08, 0x35, 0x12, 0x5b, 0x53, 0x10, 0x66, 0x28, 0xc2, 0xcc, 0xb0, 0xe3, 0x73, + 0x1a, 0x62, 0xa8, 0x68, 0x35, 0x6a, 0x90, 0xbb, 0x6f, 0xf4, 0x53, 0x2a, 0xaa, 0xdf, 0xe9, 0xbe, + 0x51, 0x4f, 0x26, 0x5a, 0xa7, 0xa2, 0x8d, 0x63, 0x75, 0x3a, 0x99, 0x04, 0x9c, 0x8d, 0x6e, 0xa7, + 0x93, 0x98, 0xf3, 0x49, 0xcc, 0x09, 0x25, 0xe3, 0x8c, 0x68, 0x9d, 0x12, 0xb1, 0x73, 0xd2, 0xe6, + 0xa4, 0x74, 0xa5, 0xd8, 0xc9, 0xa4, 0xdc, 0x09, 0xb9, 0x30, 0xed, 0xae, 0x2c, 0x09, 0x97, 0x96, + 0xa0, 0x6b, 0x4b, 0xca, 0xc5, 0x25, 0xee, 0xea, 0x12, 0x77, 0x79, 0xc9, 0xba, 0x3e, 0x3d, 0x2e, + 0x50, 0x93, 0x2b, 0xd4, 0x2d, 0x0d, 0xa4, 0x43, 0x2a, 0x98, 0xa6, 0x8e, 0x87, 0xdc, 0x7d, 0x3b, + 0xd4, 0xea, 0x3d, 0x77, 0x22, 0x25, 0x0c, 0x1f, 0xb0, 0xe5, 0xbe, 0x85, 0xed, 0x96, 0xfb, 0x46, + 0xaa, 0x2c, 0xe8, 0x9f, 0xd5, 0x1a, 0x66, 0x74, 0xd1, 0xef, 0x3b, 0xfa, 0x83, 0xf0, 0xe0, 0x4b, + 0xf4, 0x46, 0xe0, 0x12, 0x22, 0x30, 0x22, 0x30, 0x22, 0xf0, 0x7e, 0x44, 0x60, 0xb2, 0xad, 0x68, + 0x5b, 0x2d, 0xc6, 0x65, 0x66, 0x47, 0xee, 0x18, 0x07, 0xe1, 0x14, 0xe2, 0x54, 0xe3, 0x77, 0x34, + 0xc6, 0x10, 0xf1, 0xf1, 0xe3, 0x61, 0xc8, 0x4d, 0xce, 0x0e, 0x07, 0x0e, 0x79, 0xbf, 0x83, 0x9e, + 0x11, 0xf6, 0x9f, 0xb9, 0xce, 0x79, 0x34, 0x1b, 0xfc, 0xa2, 0x2f, 0x43, 0x10, 0x44, 0x10, 0x44, + 0x10, 0x44, 0x10, 0x44, 0x10, 0x4c, 0x47, 0x10, 0x8c, 0x1c, 0xf3, 0x1e, 0x07, 0xc3, 0x61, 0x67, + 0xe8, 0x0f, 0x83, 0xa3, 0xaf, 0xc9, 0xb8, 0x0e, 0x5b, 0x41, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x45, 0x00, 0xd4, 0xb5, 0x34, 0x95, 0x88, 0x34, 0xb6, 0x2a, 0x4b, 0xd0, 0x3d, 0x79, 0xf5, 0x66, + 0x09, 0x89, 0x65, 0x0b, 0x49, 0x3a, 0xcd, 0x1d, 0x38, 0xcf, 0xa4, 0x9d, 0xe8, 0xce, 0x9c, 0xe9, + 0xce, 0x9c, 0xea, 0x6e, 0x9c, 0xab, 0x5e, 0x27, 0xab, 0xd9, 0xd9, 0x26, 0x97, 0x75, 0xac, 0xe0, + 0xc6, 0x40, 0xfd, 0xcd, 0x70, 0x21, 0x88, 0x3c, 0x3b, 0xc8, 0xe6, 0xf8, 0x6b, 0x1c, 0xfb, 0x44, + 0x14, 0xb3, 0x55, 0x31, 0x51, 0xb3, 0x72, 0x86, 0xd8, 0x88, 0xd8, 0x88, 0xd8, 0x88, 0xd8, 0x88, + 0xd8, 0x88, 0xd8, 0x28, 0xdd, 0x37, 0xc9, 0x06, 0x45, 0x44, 0x43, 0x44, 0x43, 0x44, 0x43, 0x44, + 0x43, 0x44, 0xc3, 0x45, 0x8b, 0x53, 0x3d, 0x59, 0x44, 0xd4, 0x3d, 0x1e, 0x25, 0xf0, 0x55, 0x34, + 0x27, 0x95, 0xc4, 0xfd, 0x2f, 0x19, 0xff, 0x51, 0xa0, 0x3e, 0xf9, 0x44, 0x98, 0x62, 0x3e, 0x24, + 0xfb, 0xb5, 0x93, 0x63, 0x3c, 0x2a, 0xe5, 0xea, 0x69, 0xf5, 0xec, 0xe8, 0xa4, 0x7a, 0x96, 0xf0, + 0x0d, 0x68, 0x38, 0xee, 0x23, 0x25, 0x6e, 0x66, 0x7e, 0x4e, 0x99, 0x3f, 0x76, 0x36, 0xa7, 0x4a, + 0xbb, 0x9e, 0x53, 0xa7, 0x7b, 0x34, 0xa7, 0x0e, 0xf2, 0xf1, 0x2d, 0x4f, 0x48, 0xa6, 0x96, 0xa6, + 0xd5, 0xdb, 0x78, 0x5e, 0x27, 0x94, 0x4d, 0x8d, 0xbe, 0x0e, 0xe9, 0x14, 0xd2, 0x29, 0xa4, 0x53, + 0x48, 0xa7, 0x90, 0x4e, 0xcd, 0x96, 0x67, 0x75, 0x3c, 0x33, 0x78, 0x4f, 0x30, 0x9f, 0x3a, 0xcf, + 0x6a, 0x38, 0xc4, 0xeb, 0x8b, 0x2b, 0xbe, 0x27, 0x0d, 0xaf, 0x2f, 0xea, 0xdc, 0x73, 0x58, 0xd8, + 0xfd, 0xdb, 0x8b, 0xcd, 0xe1, 0xe3, 0xed, 0xf1, 0xd6, 0xd5, 0x64, 0x5e, 0xe0, 0xc0, 0x9b, 0x1b, + 0x3b, 0x45, 0x41, 0x6c, 0x5c, 0xcd, 0x20, 0xea, 0x61, 0xe3, 0xea, 0x0e, 0x51, 0x2e, 0xf7, 0x6f, + 0x6e, 0x64, 0xea, 0x95, 0x8d, 0x54, 0xd7, 0xf7, 0xf9, 0x8d, 0xbd, 0x4f, 0x42, 0x5c, 0xc1, 0xef, + 0x3b, 0x05, 0x7d, 0x5b, 0xae, 0x8a, 0x37, 0x4e, 0xc8, 0x6b, 0x9c, 0x6b, 0xaa, 0x27, 0x74, 0xeb, + 0x78, 0x75, 0x97, 0x0d, 0x3c, 0x4e, 0x58, 0xfc, 0x54, 0xf0, 0xfa, 0xae, 0xab, 0x81, 0x37, 0x6e, + 0xcd, 0x1f, 0xfa, 0xbf, 0xe4, 0x3e, 0xb0, 0x59, 0xc0, 0xec, 0x8b, 0xf7, 0xf1, 0x57, 0xa4, 0x7a, + 0xfe, 0x68, 0xce, 0x26, 0xd2, 0x90, 0x45, 0x14, 0xb5, 0xbc, 0x73, 0xb5, 0xc3, 0xbc, 0x81, 0xd6, + 0x73, 0xfe, 0x44, 0x05, 0xe0, 0x2c, 0xcd, 0xe8, 0x2c, 0x97, 0x01, 0x8e, 0x66, 0x71, 0x9e, 0x4a, + 0x01, 0x3b, 0x36, 0x7d, 0x05, 0x60, 0xc7, 0x26, 0x2e, 0xfc, 0x5b, 0x42, 0x8d, 0xf9, 0xb4, 0xe7, + 0x98, 0xa8, 0x31, 0x9f, 0xb5, 0x08, 0x43, 0x9e, 0x07, 0x6a, 0xcc, 0xfb, 0x74, 0xe4, 0x79, 0xcb, + 0x79, 0x9d, 0x63, 0xe7, 0xc9, 0xb3, 0xd3, 0xbe, 0x58, 0xaf, 0xe5, 0x45, 0xfa, 0x7d, 0x2f, 0xec, + 0x0e, 0xff, 0x0e, 0xff, 0xae, 0xcd, 0xbf, 0x93, 0x17, 0x78, 0x37, 0x5f, 0x98, 0xbe, 0x02, 0xef, + 0x83, 0xc6, 0xf5, 0x14, 0x78, 0x2f, 0xa1, 0xc0, 0x3b, 0x0a, 0xbc, 0xa7, 0xc9, 0x11, 0xad, 0x73, + 0x48, 0xfb, 0x58, 0xe0, 0x5d, 0xdb, 0x62, 0x44, 0x34, 0xe3, 0xfb, 0x8e, 0xc7, 0x4f, 0xaa, 0x3a, + 0x26, 0xfc, 0xd8, 0xbf, 0x68, 0xd8, 0x4d, 0xad, 0x79, 0xdf, 0xbd, 0xc6, 0xa5, 0x9f, 0x24, 0xf6, + 0xd5, 0x27, 0xb5, 0xa1, 0x71, 0xb2, 0xc7, 0x59, 0xf7, 0xf7, 0x24, 0xb8, 0x95, 0x59, 0xe7, 0xd6, + 0xd9, 0x24, 0xb6, 0xbf, 0x27, 0x3d, 0xf4, 0xe5, 0xb3, 0x6a, 0xf5, 0xe4, 0xb4, 0x5a, 0x2d, 0x9d, + 0x1e, 0x9d, 0x96, 0xce, 0x8f, 0x8f, 0xcb, 0x27, 0xe5, 0xe3, 0x1c, 0xcd, 0x86, 0x8c, 0xac, 0x61, + 0x3e, 0xa5, 0x75, 0xc5, 0x80, 0x30, 0x6d, 0xb3, 0x5e, 0xcd, 0x30, 0x74, 0x42, 0x83, 0x50, 0x8f, + 0x5d, 0x0a, 0x85, 0x33, 0xdf, 0x01, 0xd4, 0x06, 0x6a, 0x03, 0xb5, 0x81, 0xda, 0xa4, 0x33, 0x5e, + 0x5b, 0x3d, 0x08, 0x4d, 0xf5, 0x1f, 0xd2, 0x1e, 0x09, 0x0c, 0x2d, 0x1b, 0x4c, 0x57, 0x84, 0x03, + 0x43, 0xc7, 0x86, 0x1b, 0xc4, 0x04, 0xc4, 0x04, 0xc4, 0x84, 0x7d, 0x8f, 0x09, 0x7a, 0x9d, 0xcc, + 0x5c, 0x70, 0xa8, 0x6a, 0x68, 0xbb, 0xee, 0xf5, 0xbb, 0x83, 0x0e, 0xfa, 0xb9, 0x07, 0x81, 0x47, + 0x67, 0xea, 0x81, 0x94, 0x03, 0xe1, 0x05, 0xe1, 0x05, 0xe1, 0x05, 0x29, 0x47, 0x1a, 0x3d, 0xbf, + 0x6b, 0x86, 0xdc, 0xe8, 0xf7, 0x6c, 0x1d, 0x27, 0x31, 0x4c, 0x77, 0x05, 0xcd, 0x7c, 0x09, 0x62, + 0x01, 0x62, 0x01, 0x62, 0x01, 0x62, 0x01, 0x2d, 0x63, 0x6a, 0x5e, 0xe8, 0xad, 0x62, 0xa1, 0x77, + 0x7a, 0xe3, 0x49, 0x2e, 0xf4, 0x96, 0x13, 0x5a, 0xed, 0x3b, 0xaf, 0x54, 0x8e, 0x8e, 0x4e, 0x2b, + 0xa5, 0xa3, 0x93, 0xb3, 0xe3, 0xea, 0xe9, 0xe9, 0xf1, 0x59, 0xe9, 0x0c, 0x4b, 0xbf, 0xb1, 0x26, + 0x43, 0x0e, 0x97, 0x7e, 0x97, 0x27, 0xc3, 0x29, 0x56, 0x7e, 0x93, 0x6e, 0x75, 0x1f, 0x56, 0x7e, + 0xbb, 0xa6, 0x67, 0xbe, 0x0c, 0xdf, 0xea, 0x34, 0x4c, 0xdb, 0x0e, 0x58, 0x18, 0xea, 0x63, 0xf0, + 0x15, 0xdf, 0x05, 0x14, 0x07, 0x8a, 0x03, 0xc5, 0x81, 0xe2, 0x90, 0x65, 0x32, 0x10, 0x19, 0x34, + 0xaf, 0x08, 0xaf, 0xfb, 0x42, 0xc4, 0x08, 0xc4, 0x08, 0xc4, 0x08, 0xc4, 0x08, 0xc4, 0x88, 0xd4, + 0xc5, 0x88, 0x9e, 0x1f, 0x70, 0xc3, 0x66, 0xa1, 0x15, 0x38, 0x3d, 0x2d, 0x75, 0x50, 0xa2, 0xf1, + 0x5a, 0xfa, 0x26, 0x44, 0x05, 0x44, 0x05, 0x44, 0x05, 0x44, 0x05, 0x44, 0x85, 0x74, 0x46, 0x05, + 0x9d, 0xfb, 0x79, 0x26, 0x5f, 0x80, 0x18, 0x80, 0x18, 0x80, 0x18, 0x80, 0x18, 0x80, 0x18, 0x90, + 0xd6, 0x18, 0xa0, 0x59, 0x32, 0x9a, 0xfb, 0x16, 0x44, 0x03, 0x44, 0x03, 0x44, 0x03, 0x44, 0x83, + 0xac, 0x78, 0x98, 0x02, 0x5e, 0x1f, 0x20, 0x2c, 0xc7, 0xf9, 0x1e, 0x72, 0xd6, 0x4d, 0x46, 0x8b, + 0x5a, 0xf1, 0x5d, 0x88, 0x3d, 0x88, 0x3d, 0x88, 0x3d, 0x88, 0x3d, 0x59, 0xcb, 0x44, 0x34, 0xb4, + 0x7d, 0xc3, 0xbc, 0x97, 0x61, 0x69, 0x4b, 0xec, 0x2a, 0x4d, 0xce, 0xb5, 0x2f, 0x7d, 0x0d, 0xca, + 0x07, 0x89, 0x0d, 0x7d, 0x0e, 0xf7, 0x90, 0x56, 0x8e, 0x51, 0x2d, 0x28, 0xf1, 0x56, 0x9f, 0xf6, + 0x87, 0xb5, 0xc7, 0xb5, 0xef, 0xf5, 0x42, 0xf6, 0xf0, 0x4b, 0x40, 0xd7, 0xa0, 0x6b, 0xd0, 0x35, + 0xe8, 0x1a, 0x74, 0x0d, 0xba, 0x06, 0x5d, 0x83, 0xae, 0x41, 0xd7, 0xa0, 0xeb, 0xdc, 0xd2, 0x35, + 0xe7, 0xae, 0x3e, 0xaa, 0x1e, 0x34, 0x0e, 0x9a, 0x06, 0x4d, 0x83, 0xa6, 0x41, 0xd3, 0xa4, 0x33, + 0xbe, 0xef, 0x78, 0xbc, 0x7c, 0xa2, 0x91, 0xa6, 0x4f, 0x50, 0xff, 0x00, 0x2c, 0x0d, 0x96, 0xce, + 0x25, 0x4b, 0x9f, 0x1c, 0x1f, 0x1f, 0x81, 0xa6, 0x41, 0xd3, 0xa4, 0x2d, 0xe1, 0x2c, 0xdc, 0xe5, + 0xb3, 0x70, 0x29, 0x8f, 0xcf, 0x2b, 0xec, 0xe0, 0x14, 0xdc, 0xe6, 0xf0, 0xfe, 0xd3, 0x72, 0x4c, + 0xe2, 0xc1, 0x0e, 0xa7, 0xe7, 0xe4, 0xf0, 0x7a, 0xe5, 0xb7, 0x20, 0x68, 0x8f, 0xa6, 0xd7, 0x72, + 0x14, 0xbd, 0x96, 0xa3, 0xe7, 0x69, 0x8f, 0x9a, 0x57, 0x1d, 0x4d, 0x62, 0x27, 0xb3, 0x0b, 0xe7, + 0x52, 0x24, 0x39, 0x35, 0x34, 0x49, 0x77, 0xa2, 0xe6, 0x48, 0xe4, 0xcd, 0x5f, 0xee, 0x4a, 0xc9, + 0x29, 0x46, 0x35, 0xb5, 0x12, 0x9c, 0x52, 0x0a, 0x33, 0x29, 0x99, 0x19, 0x24, 0x37, 0x71, 0xc4, + 0x87, 0x5d, 0x62, 0xc8, 0x15, 0x0f, 0xde, 0x25, 0x39, 0x68, 0x57, 0xb1, 0x72, 0x9e, 0xf2, 0x41, + 0xba, 0x14, 0x12, 0x1f, 0xf1, 0x41, 0xb9, 0x54, 0xb2, 0x1d, 0xb9, 0x3c, 0x47, 0x2e, 0xc3, 0xd1, + 0x1f, 0x74, 0x9b, 0xac, 0xbb, 0x54, 0x3d, 0xb8, 0xb6, 0x68, 0xf9, 0x7d, 0x8f, 0xb3, 0x40, 0xbd, + 0x8e, 0xda, 0xf4, 0x14, 0x83, 0x49, 0x8b, 0xaa, 0xc8, 0x48, 0x52, 0xd0, 0x92, 0x4c, 0x99, 0xa7, + 0x54, 0xe2, 0x35, 0x28, 0xef, 0xd4, 0x4a, 0xbb, 0x36, 0x65, 0x5d, 0x9b, 0x92, 0xae, 0x47, 0x39, + 0xdf, 0x6d, 0xda, 0x44, 0x75, 0x2e, 0x75, 0xb1, 0x13, 0x98, 0x5d, 0x66, 0xd8, 0x4e, 0x68, 0x99, + 0x81, 0x4d, 0x7f, 0xd0, 0xfd, 0x7c, 0xf3, 0xb4, 0x07, 0xde, 0x97, 0xa8, 0x0f, 0xbc, 0x2f, 0x65, + 0xe3, 0xc0, 0x7b, 0xe2, 0x25, 0x39, 0x1c, 0x76, 0x9f, 0xac, 0xe3, 0x48, 0xa7, 0x3c, 0x48, 0xbe, + 0xb4, 0xb6, 0x18, 0xf6, 0x49, 0xab, 0x8a, 0x6b, 0x38, 0x36, 0x5a, 0xd3, 0x2a, 0x9a, 0x86, 0xb5, + 0x4a, 0x9d, 0xab, 0x66, 0x9a, 0x97, 0x4c, 0x74, 0xaf, 0x92, 0x25, 0xb1, 0x3c, 0xa2, 0x61, 0x55, + 0x4c, 0xeb, 0x6a, 0x58, 0x52, 0x43, 0x9a, 0xdc, 0x31, 0xcf, 0x89, 0x8c, 0x72, 0x4a, 0x17, 0x95, + 0x9e, 0xd2, 0xb2, 0x6a, 0xf0, 0x81, 0x8a, 0x3d, 0x59, 0x10, 0xf8, 0x81, 0x41, 0xe8, 0xd3, 0x16, + 0xe0, 0x33, 0x6a, 0x1f, 0xf4, 0x09, 0xfa, 0x04, 0x7d, 0x82, 0x3e, 0x41, 0x9f, 0xa0, 0x4f, 0xd0, + 0x27, 0xe8, 0x13, 0xf4, 0x09, 0xfa, 0x1c, 0xd3, 0xa1, 0xdf, 0xe7, 0x7a, 0xf1, 0x73, 0xf0, 0x05, + 0xe0, 0x4f, 0xf0, 0x27, 0xf8, 0x13, 0xfc, 0x09, 0xfe, 0x04, 0x7f, 0x82, 0x3f, 0xc1, 0x9f, 0xe0, + 0x4f, 0xf0, 0xa7, 0x46, 0xdd, 0x13, 0x8a, 0x27, 0x88, 0x13, 0xc4, 0x09, 0xe2, 0x04, 0x71, 0x82, + 0x38, 0x41, 0x9c, 0x20, 0x4e, 0x10, 0x27, 0x88, 0x73, 0xc0, 0x85, 0x1a, 0xb5, 0x4e, 0xa8, 0x9c, + 0x60, 0x4e, 0x30, 0x27, 0x98, 0x13, 0xcc, 0x09, 0xe6, 0x04, 0x73, 0x82, 0x39, 0xc1, 0x9c, 0x7b, + 0xcf, 0x9c, 0xae, 0x19, 0x72, 0xc3, 0x72, 0x99, 0x19, 0xd0, 0x43, 0xe7, 0x4c, 0xdb, 0xa0, 0x4e, + 0x50, 0x27, 0xa8, 0x73, 0xcf, 0xa8, 0xd3, 0x36, 0x39, 0x33, 0x4c, 0xcf, 0x36, 0xb8, 0x43, 0x5a, + 0x5d, 0x5f, 0x47, 0xe5, 0xeb, 0x62, 0xc3, 0xe4, 0x9c, 0x05, 0x1e, 0x39, 0x7c, 0x16, 0x1f, 0x1f, + 0xed, 0xbf, 0xab, 0x3f, 0x8d, 0xc1, 0x1f, 0x95, 0xc9, 0x1f, 0xad, 0xd1, 0x1f, 0x9f, 0xe6, 0xfe, + 0xf8, 0xe5, 0xf1, 0xf1, 0xe3, 0xe3, 0xa3, 0xfd, 0x8f, 0x5f, 0xff, 0xf3, 0x97, 0x7f, 0xfd, 0xef, + 0x9f, 0x8f, 0x8f, 0xff, 0x78, 0x7c, 0x34, 0x9e, 0xe6, 0x3e, 0xf1, 0x6b, 0x11, 0x31, 0x6c, 0x45, + 0x0f, 0x73, 0xf7, 0x4d, 0xdf, 0x1b, 0xb2, 0xb3, 0x8d, 0x23, 0x8a, 0x21, 0x8a, 0x21, 0x8a, 0x41, + 0x3b, 0x81, 0x76, 0x02, 0xed, 0x04, 0xda, 0x09, 0xb4, 0x13, 0x68, 0x27, 0x7b, 0xcf, 0x9d, 0x7d, + 0xef, 0xbb, 0xe7, 0xff, 0xe5, 0xe9, 0xe1, 0xce, 0x49, 0xe3, 0xe0, 0x4e, 0x70, 0x27, 0xb8, 0x13, + 0xdc, 0x09, 0xee, 0x04, 0x77, 0x82, 0x3b, 0xc1, 0x9d, 0xe0, 0xce, 0xec, 0x72, 0x27, 0xea, 0x7f, + 0x8b, 0x14, 0x6b, 0x1e, 0xd6, 0x07, 0x3e, 0x24, 0xaa, 0x4c, 0x5a, 0xd0, 0x5d, 0xb9, 0x79, 0x78, + 0x6e, 0x40, 0xfb, 0x72, 0x72, 0xb7, 0xbb, 0xaa, 0xfb, 0xad, 0x50, 0x3f, 0x98, 0x79, 0xe6, 0xb3, + 0xcb, 0x6c, 0xba, 0xa2, 0xb2, 0x93, 0x06, 0x55, 0xeb, 0x69, 0xb2, 0x8e, 0xd9, 0x77, 0x87, 0x40, + 0xd9, 0x31, 0xdd, 0x90, 0x11, 0xd5, 0xa8, 0x2d, 0xe5, 0xbc, 0x46, 0x2d, 0x41, 0x49, 0x69, 0x5d, + 0xe9, 0x4e, 0xf6, 0xeb, 0xd4, 0xaa, 0x97, 0x9c, 0x4e, 0x47, 0x50, 0x20, 0x4b, 0x61, 0xa2, 0x99, + 0xf7, 0xec, 0xfb, 0x2e, 0x33, 0x29, 0x74, 0x8b, 0x68, 0xa9, 0xb7, 0x9c, 0x41, 0x67, 0x1a, 0x7a, + 0xbe, 0xdf, 0x73, 0xbc, 0x17, 0x3a, 0x6f, 0x1a, 0xb5, 0x08, 0x77, 0x0a, 0x77, 0x0a, 0x77, 0x0a, + 0x77, 0x9a, 0x39, 0x77, 0x8a, 0x33, 0x69, 0xd6, 0xa6, 0x39, 0x69, 0x3d, 0x8f, 0x46, 0xe1, 0x34, + 0x34, 0x89, 0xb3, 0x68, 0x0e, 0x34, 0x4e, 0x0c, 0xd5, 0x09, 0xa1, 0x7d, 0x22, 0x14, 0xa5, 0x4e, + 0xe2, 0xd1, 0x36, 0xf4, 0x62, 0x83, 0x1e, 0x7f, 0xe8, 0x04, 0x86, 0x4d, 0xf2, 0xa0, 0x21, 0xa5, + 0x03, 0x86, 0x24, 0x4f, 0x30, 0x91, 0x3e, 0x50, 0x48, 0x05, 0x57, 0x88, 0xf0, 0x44, 0x15, 0x47, + 0xc8, 0xf0, 0x83, 0x0c, 0x37, 0xe8, 0xf0, 0x42, 0xaf, 0x4b, 0x92, 0x3d, 0x29, 0xa4, 0x68, 0xba, + 0xa1, 0x61, 0x33, 0xd7, 0x7c, 0x57, 0x3f, 0x85, 0x6b, 0xda, 0x94, 0xec, 0x69, 0x46, 0xd3, 0x7c, + 0xa2, 0xa4, 0x78, 0x9a, 0x57, 0x49, 0xf5, 0x34, 0xaf, 0x12, 0x4e, 0xf3, 0xd2, 0x9d, 0x1b, 0xe0, + 0x34, 0x2f, 0x6a, 0xe6, 0x9f, 0x3b, 0xe0, 0xfe, 0xa8, 0xa2, 0x32, 0x69, 0xc6, 0x76, 0x74, 0xaa, + 0xd0, 0x04, 0xcd, 0x92, 0x2e, 0xcd, 0x31, 0xaf, 0x84, 0x19, 0x32, 0xed, 0xf6, 0x17, 0xe2, 0x25, + 0x59, 0x1d, 0x8b, 0x73, 0x3f, 0x69, 0x0e, 0xc5, 0x4d, 0xfd, 0x10, 0x54, 0x2b, 0xe7, 0xd5, 0xf3, + 0x93, 0xd3, 0xca, 0xf9, 0x71, 0x8a, 0xc7, 0x62, 0x47, 0x19, 0xf7, 0x53, 0x8a, 0x0f, 0x11, 0xb5, + 0x5c, 0x87, 0x79, 0xdc, 0x30, 0xdd, 0x50, 0x9d, 0x61, 0x66, 0xda, 0x52, 0x87, 0x98, 0x7a, 0xeb, + 0x6b, 0xfd, 0xe1, 0xae, 0xde, 0x02, 0xcb, 0x80, 0x65, 0xc0, 0x32, 0xb2, 0x33, 0x87, 0x79, 0xfd, + 0x2e, 0x0b, 0x46, 0x72, 0x8b, 0x3a, 0xd0, 0x94, 0xab, 0x0a, 0x6d, 0xd4, 0xbd, 0x7e, 0x77, 0xf0, + 0x50, 0x3f, 0x53, 0xec, 0x0d, 0x1d, 0xcf, 0x38, 0x2b, 0x55, 0xca, 0xff, 0x63, 0x0c, 0x8b, 0xf5, + 0x10, 0xb8, 0xc4, 0xc5, 0x06, 0xe1, 0xcc, 0x06, 0xf6, 0xc8, 0xf8, 0x2b, 0xfc, 0x98, 0x84, 0x1f, + 0x1b, 0xf4, 0xdb, 0xde, 0xb9, 0x30, 0x8a, 0x4d, 0xb8, 0x04, 0x9b, 0x6e, 0x91, 0x91, 0x21, 0x23, + 0xcb, 0x54, 0x46, 0xa6, 0x6f, 0x53, 0x2b, 0x72, 0xb3, 0xc4, 0x68, 0xe4, 0xd9, 0xf5, 0xad, 0xef, + 0xa3, 0x03, 0x52, 0x68, 0x68, 0x64, 0xae, 0x41, 0xd0, 0x08, 0x68, 0x04, 0x34, 0x02, 0x1a, 0x01, + 0x8d, 0x80, 0x46, 0x40, 0x23, 0xa0, 0x91, 0x6d, 0x34, 0x62, 0x05, 0x16, 0x25, 0x8b, 0xcc, 0x34, + 0x07, 0x12, 0x01, 0x89, 0x80, 0x44, 0x40, 0x22, 0x20, 0x11, 0x90, 0x08, 0x48, 0x04, 0x24, 0xb2, + 0x8d, 0x44, 0x3a, 0x81, 0xf9, 0x32, 0x08, 0x00, 0x94, 0x0b, 0x35, 0x8b, 0x6d, 0x82, 0x49, 0xc0, + 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0x04, 0x4c, 0x02, 0x26, 0x01, 0x93, 0x6c, 0x63, 0x92, 0xff, + 0x6b, 0x3e, 0x3f, 0xb3, 0x80, 0x92, 0x48, 0xe6, 0x5b, 0x04, 0x8f, 0x80, 0x47, 0xc0, 0x23, 0xe0, + 0x11, 0xf0, 0x08, 0x78, 0x04, 0x3c, 0x02, 0x1e, 0xd9, 0xc6, 0x23, 0x5d, 0xd3, 0x32, 0x2c, 0xdf, + 0xe3, 0x81, 0xef, 0x52, 0x42, 0xc9, 0x8a, 0x66, 0x41, 0x26, 0x20, 0x13, 0x90, 0x09, 0xc8, 0x04, + 0x64, 0x02, 0x32, 0x01, 0x99, 0x80, 0x4c, 0xe2, 0x90, 0x49, 0xcf, 0xec, 0x87, 0x8c, 0x9a, 0x4b, + 0xe6, 0x1a, 0x05, 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0x04, 0x54, 0x02, + 0x2a, 0xd9, 0x46, 0x25, 0xfe, 0x1b, 0x0b, 0x42, 0xe7, 0xdf, 0xa4, 0x50, 0xb2, 0xd8, 0x26, 0x98, + 0x04, 0x4c, 0x02, 0x26, 0x01, 0x93, 0x80, 0x49, 0xc0, 0x24, 0x60, 0x12, 0x30, 0xc9, 0x36, 0x26, + 0xe9, 0x59, 0xa1, 0xf1, 0xec, 0xf4, 0x28, 0xdf, 0xba, 0x59, 0x68, 0x12, 0x44, 0x82, 0xf2, 0x4a, + 0x8a, 0x58, 0xb2, 0xbf, 0xe5, 0x95, 0xc0, 0x26, 0x60, 0x13, 0xb0, 0x09, 0xd8, 0x64, 0x6f, 0xd9, + 0x64, 0x08, 0x11, 0xcc, 0x36, 0x42, 0x66, 0xf9, 0x9e, 0x4d, 0x07, 0x28, 0x8b, 0xed, 0x82, 0x52, + 0x40, 0x29, 0xa0, 0x14, 0x50, 0x0a, 0x28, 0x05, 0x94, 0x02, 0x4a, 0x01, 0xa5, 0x88, 0x51, 0x4a, + 0xc8, 0xde, 0x58, 0xc0, 0xdc, 0x77, 0x6d, 0xb8, 0xb2, 0xf6, 0x0b, 0xc0, 0x2d, 0xe0, 0x16, 0x70, + 0x0b, 0xb8, 0x05, 0xdc, 0x02, 0x6e, 0x01, 0xb7, 0x80, 0x5b, 0xc4, 0xb8, 0xa5, 0xef, 0x99, 0x6f, + 0xa6, 0xe3, 0x9a, 0xcf, 0x2e, 0x23, 0x47, 0x96, 0x55, 0x6d, 0x83, 0x56, 0x40, 0x2b, 0xa0, 0x15, + 0xd0, 0x0a, 0x68, 0x05, 0xb4, 0x02, 0x5a, 0x01, 0xad, 0xc4, 0xa7, 0x95, 0xbe, 0x67, 0xd3, 0x6f, + 0x9e, 0x5d, 0x6a, 0x14, 0x7c, 0x82, 0xdd, 0xb3, 0xf2, 0x68, 0x82, 0xdd, 0xb3, 0xa0, 0x12, 0x50, + 0x09, 0xa8, 0x04, 0x54, 0xb2, 0x17, 0x54, 0xe2, 0xf7, 0x39, 0xf1, 0x61, 0x7e, 0x4b, 0x2d, 0x82, + 0x47, 0xc0, 0x23, 0xe0, 0x11, 0xf0, 0x08, 0x78, 0x04, 0x3c, 0x02, 0x1e, 0x01, 0x8f, 0x6c, 0xe5, + 0x11, 0xda, 0xe3, 0xfc, 0x96, 0x5a, 0x04, 0x8f, 0x60, 0xfd, 0x46, 0x11, 0x4a, 0xb0, 0x7e, 0x03, + 0x32, 0x01, 0x99, 0x80, 0x4c, 0x40, 0x26, 0xfb, 0x45, 0x26, 0x94, 0x47, 0xfb, 0x2d, 0xb4, 0x07, + 0x2a, 0x01, 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0x04, 0x54, 0x22, 0x40, + 0x25, 0x3a, 0x4a, 0xd8, 0xaf, 0x69, 0x17, 0x94, 0x82, 0xb5, 0x1c, 0x79, 0x40, 0xc1, 0x5a, 0x0e, + 0xd8, 0x04, 0x6c, 0x02, 0x36, 0x01, 0x9b, 0xec, 0x15, 0x9b, 0xd0, 0x16, 0xb1, 0x5f, 0xd9, 0x2a, + 0xb8, 0x04, 0x5c, 0x02, 0x2e, 0x01, 0x97, 0x80, 0x4b, 0xc0, 0x25, 0xe0, 0x12, 0x70, 0xc9, 0x56, + 0x2e, 0xa1, 0x2e, 0x19, 0xbb, 0xa2, 0x4d, 0x30, 0x09, 0x56, 0x74, 0x14, 0xc1, 0x04, 0x2b, 0x3a, + 0xa0, 0x13, 0xd0, 0x09, 0xe8, 0x04, 0x74, 0x92, 0x51, 0x3a, 0x39, 0xd0, 0x38, 0x47, 0x8b, 0x35, + 0xcf, 0xf3, 0xb9, 0x39, 0x18, 0x12, 0xa9, 0x69, 0x59, 0x0c, 0xad, 0x57, 0xd6, 0x35, 0x7b, 0x26, + 0x7f, 0x1d, 0x78, 0xdc, 0x43, 0xbf, 0xc7, 0x3c, 0x6b, 0x48, 0x0f, 0xc3, 0x98, 0xe3, 0x78, 0xa6, + 0x6b, 0xd8, 0xec, 0xcd, 0xb1, 0xd8, 0xe1, 0xe2, 0xdf, 0x5d, 0xff, 0xc5, 0xb1, 0x4c, 0xd7, 0xb0, + 0x5e, 0x4d, 0xcf, 0x63, 0x6e, 0x78, 0x38, 0xfe, 0xe1, 0x90, 0xf1, 0x57, 0x16, 0x78, 0x8c, 0x1f, + 0x86, 0xdc, 0xe4, 0x4c, 0xc2, 0x77, 0x17, 0x43, 0x1e, 0xf4, 0x2d, 0xee, 0x8d, 0xc3, 0xc0, 0x7d, + 0x74, 0x4f, 0xad, 0xf1, 0x2d, 0x5c, 0x0d, 0xef, 0xa0, 0xbd, 0xf0, 0xd7, 0x9b, 0xd1, 0x0d, 0x5d, + 0x8e, 0xef, 0xa7, 0x3d, 0xfe, 0xa1, 0x5d, 0x1f, 0xdf, 0x4f, 0xbb, 0x39, 0xbc, 0x9f, 0x03, 0x3d, + 0x83, 0x17, 0xef, 0x93, 0x31, 0x87, 0x57, 0x76, 0x58, 0x75, 0x0e, 0xa7, 0xc0, 0x40, 0x6a, 0x1a, + 0xc0, 0x78, 0x43, 0xb7, 0x7d, 0x20, 0x62, 0x0c, 0x42, 0xd1, 0xf1, 0x6c, 0x16, 0xdf, 0xd3, 0xcf, + 0xbc, 0x8b, 0x3f, 0xb8, 0x2c, 0xe6, 0x20, 0x8b, 0xb9, 0x7f, 0x61, 0xaa, 0x97, 0xa1, 0x78, 0x45, + 0x6a, 0x97, 0xa5, 0x74, 0x65, 0x2a, 0x57, 0xa6, 0x70, 0x75, 0xea, 0xa6, 0x75, 0x00, 0xc2, 0x14, + 0x1d, 0x8d, 0x9c, 0xcb, 0xcc, 0x4e, 0xc0, 0x3a, 0x22, 0xa3, 0x36, 0x9e, 0x88, 0xe5, 0x53, 0x81, + 0x6b, 0x1a, 0x63, 0x1f, 0xf3, 0xf1, 0xe3, 0xe1, 0xc8, 0xb6, 0x0f, 0x47, 0x73, 0x3f, 0x51, 0x1b, + 0x7d, 0x09, 0x58, 0x18, 0xca, 0x58, 0xe9, 0xe8, 0x42, 0x31, 0x3b, 0x2d, 0xc3, 0x4e, 0x61, 0xa7, + 0x8b, 0xb7, 0x73, 0xe5, 0x04, 0x62, 0x03, 0x67, 0x4d, 0x66, 0x87, 0x60, 0xcf, 0x4f, 0x93, 0xe2, + 0xe1, 0xf5, 0x82, 0xbd, 0x26, 0x36, 0x85, 0x95, 0x85, 0x24, 0x15, 0x01, 0x89, 0x48, 0x38, 0x52, + 0x15, 0x8c, 0xc8, 0x84, 0x22, 0x32, 0x81, 0x88, 0x4e, 0x18, 0xd2, 0x9b, 0x92, 0x88, 0x9a, 0x44, + 0x74, 0x61, 0xef, 0xf5, 0x3d, 0x9c, 0x65, 0x50, 0x75, 0x45, 0x76, 0xa9, 0x45, 0xe8, 0xb1, 0xd0, + 0x63, 0xa1, 0xc7, 0x4a, 0xce, 0x1c, 0x71, 0xb2, 0xa4, 0x20, 0xcd, 0xb5, 0xe4, 0x79, 0xe8, 0x5b, + 0x46, 0xcf, 0x35, 0x79, 0xc7, 0x0f, 0xba, 0x9f, 0x2c, 0xbf, 0xdb, 0xf3, 0x3d, 0xe6, 0xf1, 0x70, + 0xf5, 0xaf, 0x07, 0xbf, 0xe5, 0x81, 0xe9, 0x85, 0x16, 0x73, 0xde, 0x58, 0xf0, 0x69, 0xe6, 0xe7, + 0xc5, 0x7f, 0x5a, 0x74, 0x1a, 0xe1, 0xe2, 0x07, 0x26, 0x99, 0xf1, 0xc2, 0xaf, 0x05, 0xf8, 0x97, + 0x6a, 0x6c, 0x6f, 0x9c, 0x90, 0xd7, 0x38, 0x0f, 0xd4, 0xc6, 0xf7, 0xd6, 0xf1, 0xea, 0x2e, 0x1b, + 0x4c, 0xf1, 0x01, 0x4b, 0x7b, 0x7d, 0xd7, 0x55, 0x18, 0x9d, 0x5b, 0xf3, 0x07, 0x5d, 0x63, 0xf7, + 0x81, 0xcd, 0x02, 0x66, 0x5f, 0xbc, 0x8f, 0x9b, 0x4a, 0xf1, 0x82, 0xe2, 0xcc, 0x4c, 0x50, 0x8f, + 0x5b, 0xb3, 0x8d, 0x21, 0x64, 0x21, 0x64, 0x21, 0x64, 0xed, 0x69, 0xc8, 0x8a, 0x7e, 0x3b, 0xd4, + 0x52, 0xb1, 0x62, 0xa1, 0x47, 0xe2, 0x1e, 0xeb, 0x41, 0x87, 0x52, 0xb9, 0xb5, 0x06, 0xc1, 0xfb, + 0x7a, 0x74, 0x3f, 0xed, 0xb1, 0x13, 0xd6, 0xb5, 0x62, 0x21, 0x24, 0xe8, 0x9b, 0x9c, 0xc9, 0x8b, + 0x16, 0x32, 0x2b, 0x41, 0xca, 0x9a, 0x45, 0x05, 0x9a, 0x05, 0x34, 0x0b, 0x68, 0x16, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x10, 0x9a, 0x05, 0x34, 0x0b, 0x68, 0x16, 0xd0, 0x2c, 0x10, 0xb2, 0x10, 0xb2, + 0x10, 0xb2, 0xa0, 0x59, 0xe4, 0x46, 0xb3, 0x48, 0xc9, 0x26, 0xcb, 0x89, 0x64, 0x81, 0x3d, 0x96, + 0x0a, 0x83, 0xb9, 0xbb, 0x2d, 0x96, 0xe3, 0xe1, 0x4b, 0x72, 0xf7, 0xd6, 0x42, 0x67, 0x18, 0x66, + 0x18, 0x3a, 0x2f, 0xde, 0x04, 0xc2, 0x04, 0x77, 0x74, 0x6d, 0x6a, 0x0c, 0xbb, 0xbc, 0xb0, 0xcb, + 0x4b, 0xd1, 0x55, 0x08, 0xef, 0xf2, 0x9a, 0xce, 0x3f, 0x79, 0xd1, 0x74, 0xa6, 0x0d, 0xec, 0xf6, + 0x82, 0x72, 0x9a, 0x37, 0xe5, 0x54, 0x72, 0x23, 0xe4, 0xd2, 0xc4, 0x91, 0x5e, 0xb4, 0x51, 0x30, + 0x15, 0xa4, 0x9c, 0x48, 0x39, 0x77, 0x9f, 0x72, 0xca, 0x9a, 0xde, 0x34, 0x4a, 0xb9, 0xae, 0x6f, + 0xc9, 0xa7, 0x35, 0xab, 0xa3, 0xd6, 0xb4, 0x4d, 0xc5, 0xd1, 0xa1, 0x79, 0x3b, 0x52, 0xd9, 0x44, + 0x29, 0x4d, 0x55, 0x93, 0xc9, 0x52, 0x9b, 0xae, 0x36, 0x13, 0xd6, 0x66, 0xca, 0xfa, 0x4c, 0x5a, + 0xcd, 0xb4, 0x15, 0x4d, 0x9c, 0x4e, 0x5d, 0x5a, 0x9a, 0x79, 0x36, 0xb3, 0x9c, 0xae, 0xe9, 0x2a, + 0xbd, 0x5c, 0xbf, 0x14, 0x45, 0x2b, 0x04, 0x6d, 0x2d, 0xbd, 0x62, 0x7c, 0x44, 0xd0, 0x28, 0xcd, + 0x2b, 0xfc, 0x93, 0xff, 0x68, 0xac, 0xab, 0x40, 0xfd, 0x4a, 0xff, 0xe2, 0x70, 0x54, 0x3e, 0xd0, + 0x36, 0x4b, 0xfc, 0x8a, 0xff, 0xfa, 0x11, 0x2f, 0x91, 0xb5, 0xff, 0xf3, 0x03, 0xe1, 0x50, 0x11, + 0xbe, 0xfa, 0xbf, 0x38, 0x54, 0x47, 0x18, 0xaa, 0x9f, 0x07, 0xe9, 0x68, 0xe5, 0x69, 0x47, 0xf5, + 0x08, 0x14, 0xa6, 0xea, 0x8c, 0x54, 0x60, 0x70, 0x8a, 0x48, 0xb1, 0x42, 0x83, 0x18, 0x35, 0x0c, + 0xa4, 0x03, 0xd2, 0x01, 0xe9, 0x52, 0x8a, 0x74, 0xcc, 0xeb, 0x77, 0x59, 0x40, 0x91, 0x7b, 0xcd, + 0x41, 0x5d, 0x95, 0xa0, 0xad, 0xba, 0xd7, 0xef, 0x0e, 0x1e, 0xf6, 0x67, 0x06, 0x9d, 0xab, 0xcd, + 0x42, 0x2b, 0x70, 0x7a, 0xb4, 0x69, 0xf2, 0x6c, 0xa3, 0x70, 0xaa, 0x70, 0xaa, 0x70, 0xaa, 0x29, + 0x75, 0xaa, 0x21, 0x0f, 0x1c, 0xef, 0x85, 0xd2, 0x9f, 0x9e, 0x65, 0xd0, 0x07, 0x8a, 0x95, 0xc3, + 0xd9, 0xda, 0xa9, 0x22, 0x65, 0x72, 0xe0, 0xf7, 0xe0, 0xf7, 0xe0, 0xf7, 0x12, 0xf7, 0x7b, 0x7d, + 0xc7, 0xe3, 0x47, 0x15, 0x42, 0xbf, 0x77, 0x0a, 0x19, 0x6f, 0x27, 0x0e, 0x0e, 0x32, 0x5e, 0x72, + 0x32, 0x9e, 0xae, 0xa1, 0xaa, 0x56, 0xce, 0xab, 0xe7, 0x27, 0xa7, 0x95, 0xf3, 0x63, 0xe8, 0x79, + 0xfb, 0xa0, 0xe7, 0x2d, 0x6c, 0x67, 0xa3, 0x03, 0xaf, 0xc5, 0x86, 0x81, 0x60, 0x40, 0x30, 0x20, + 0x58, 0x4a, 0x11, 0x4c, 0xfd, 0x45, 0x80, 0xa5, 0xdc, 0x93, 0x02, 0xc2, 0x66, 0x5f, 0x0c, 0x98, + 0x0c, 0xde, 0xa7, 0xc5, 0xad, 0xce, 0xb3, 0xff, 0xb6, 0xb4, 0xed, 0x79, 0xf6, 0x1f, 0x67, 0x5e, + 0x4c, 0x8b, 0x7e, 0xa7, 0xf0, 0x56, 0xda, 0x6e, 0xfd, 0x76, 0xd7, 0xec, 0xf5, 0x1c, 0xef, 0x85, + 0xce, 0x5f, 0x4f, 0x1a, 0x84, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x4e, 0xa9, 0x9f, 0x76, 0x6c, 0xe6, + 0x71, 0x87, 0xbf, 0x13, 0xfb, 0x6a, 0x02, 0xd6, 0x2f, 0x5e, 0x8f, 0x6f, 0xed, 0xc2, 0x0c, 0x09, + 0xe7, 0xf2, 0xe4, 0xc1, 0x3f, 0x3f, 0xd4, 0x6e, 0xeb, 0xed, 0xdb, 0x5a, 0xa3, 0x71, 0x7d, 0xf7, + 0xa5, 0xdd, 0x78, 0xb8, 0x6f, 0xdd, 0x5f, 0xde, 0xdf, 0x14, 0x29, 0x8f, 0x33, 0x08, 0xc9, 0xb2, + 0x7d, 0xda, 0x8c, 0x7f, 0xae, 0x1f, 0xbe, 0xdc, 0x36, 0x8a, 0x69, 0xcc, 0x75, 0x75, 0x3d, 0xee, + 0xe7, 0x46, 0xbb, 0xb5, 0x4f, 0x0f, 0x5c, 0xdb, 0xbf, 0xf1, 0xfd, 0xbc, 0x4f, 0x0f, 0x7c, 0xb1, + 0x5f, 0xe3, 0x7b, 0x79, 0xf1, 0x50, 0x4c, 0x99, 0xcc, 0xf3, 0x94, 0xd9, 0x63, 0x64, 0x54, 0xd2, + 0x05, 0xbf, 0xc7, 0xf5, 0xc8, 0x3c, 0x8b, 0x0d, 0x23, 0x7d, 0x40, 0xfa, 0x80, 0xf4, 0x01, 0x32, + 0x8f, 0xac, 0xcc, 0x93, 0x74, 0xfd, 0x87, 0xdd, 0xba, 0x65, 0x1e, 0x38, 0xcf, 0x7d, 0x6e, 0x06, + 0xef, 0x46, 0xe8, 0xfa, 0xdc, 0x20, 0xde, 0xfb, 0xb0, 0xb2, 0x75, 0x38, 0x68, 0x38, 0x68, 0x38, + 0xe8, 0xb4, 0xea, 0x3b, 0xc4, 0x3b, 0x21, 0xf0, 0x42, 0x93, 0x6c, 0x5c, 0xd3, 0xb4, 0xbc, 0x5e, + 0x29, 0x57, 0x4f, 0xab, 0x67, 0x47, 0x27, 0xd5, 0x33, 0x6c, 0x89, 0xa0, 0x1e, 0xb3, 0x92, 0xee, + 0x31, 0x3b, 0xc5, 0x96, 0x88, 0x64, 0xb3, 0xed, 0x9f, 0x19, 0x79, 0x3d, 0x5e, 0xb1, 0x68, 0x57, + 0xd4, 0x8e, 0x86, 0x7a, 0x4f, 0x1b, 0xca, 0x15, 0x1d, 0x4e, 0x7f, 0x3e, 0x54, 0x2a, 0x6d, 0x51, + 0xa0, 0xaf, 0x12, 0x35, 0xff, 0xfb, 0xda, 0xf4, 0xa6, 0xdb, 0xd3, 0x9f, 0xa5, 0x8a, 0x96, 0xcb, + 0x4f, 0x10, 0x99, 0xb2, 0x97, 0x6a, 0x40, 0x4f, 0xb2, 0x89, 0x19, 0xa5, 0x2e, 0xb5, 0x11, 0x39, + 0xea, 0x8e, 0xe8, 0x76, 0xac, 0xb9, 0x2d, 0x75, 0x29, 0x75, 0x96, 0xe9, 0x6e, 0x7c, 0x98, 0xdc, + 0x81, 0x0c, 0x4b, 0x03, 0x20, 0x5b, 0x3d, 0xb2, 0x40, 0x59, 0x3b, 0xa9, 0x02, 0x1f, 0x06, 0x1f, + 0x86, 0xda, 0x49, 0xa8, 0x9d, 0x04, 0x41, 0x10, 0x82, 0x60, 0x16, 0x04, 0x41, 0xd4, 0x4e, 0xca, + 0xbd, 0xd4, 0x88, 0xda, 0x49, 0xa8, 0x9d, 0x04, 0x61, 0x31, 0x33, 0xc2, 0x22, 0x6a, 0x27, 0x01, + 0xe9, 0x80, 0x74, 0x40, 0x3a, 0xe9, 0x99, 0x87, 0xda, 0x49, 0x5a, 0x9c, 0x2b, 0x6a, 0x27, 0xc1, + 0xa9, 0xc2, 0xa9, 0xee, 0xab, 0x53, 0x45, 0xed, 0x24, 0xd4, 0x4e, 0x82, 0xdf, 0x83, 0xdf, 0xdb, + 0x37, 0xbf, 0x87, 0xda, 0x49, 0x69, 0x91, 0xf1, 0x50, 0x3b, 0x09, 0xb5, 0x93, 0x50, 0x3b, 0x69, + 0xaf, 0xf4, 0x3c, 0xd4, 0x4e, 0x02, 0x82, 0x01, 0xc1, 0xf6, 0x1d, 0xc1, 0x50, 0x3b, 0x29, 0x6b, + 0x7e, 0x1b, 0xb5, 0x93, 0xe0, 0xa7, 0xe1, 0xa7, 0xf7, 0xcd, 0x4f, 0xa3, 0x76, 0x12, 0x6a, 0x27, + 0xa1, 0x76, 0x52, 0x8e, 0x1f, 0x18, 0xb5, 0x93, 0xf2, 0xfd, 0xc0, 0xa8, 0x9d, 0xb4, 0x6b, 0x99, + 0x07, 0xb5, 0x93, 0x50, 0x3b, 0x09, 0xe9, 0x03, 0xd2, 0x07, 0xc8, 0x3c, 0xa9, 0x94, 0x79, 0x50, + 0x3b, 0x09, 0xb5, 0x93, 0xe0, 0xa0, 0xe1, 0xa0, 0xf7, 0x54, 0xdf, 0x41, 0xed, 0xa4, 0xf8, 0x37, + 0x86, 0xda, 0x49, 0x33, 0x5f, 0x80, 0x2d, 0x11, 0xa8, 0x9d, 0x44, 0x9e, 0x2b, 0xa3, 0x76, 0x52, + 0xcc, 0xf8, 0x96, 0xf9, 0xda, 0x49, 0x2a, 0x95, 0x2d, 0x0a, 0x3b, 0x2a, 0x9d, 0xd4, 0x1c, 0xde, + 0x73, 0x52, 0x55, 0x47, 0x0e, 0x34, 0x4e, 0xa4, 0x01, 0xd2, 0xc9, 0x6e, 0x56, 0x2e, 0xde, 0x38, + 0x21, 0xaf, 0x71, 0x2e, 0x57, 0xa0, 0x61, 0x10, 0x44, 0xeb, 0x2e, 0x1b, 0xf6, 0x6d, 0xf1, 0x53, + 0xc1, 0xeb, 0xbb, 0xae, 0x44, 0x79, 0x95, 0x5b, 0xf3, 0x87, 0x7a, 0x23, 0xf7, 0x81, 0xcd, 0x02, + 0x66, 0x5f, 0xbc, 0x8f, 0x9b, 0xd0, 0xda, 0xe1, 0x8a, 0x16, 0xbb, 0x3b, 0x4b, 0x2d, 0x4a, 0x55, + 0xbf, 0x49, 0xda, 0x36, 0xc5, 0xac, 0x32, 0xbe, 0x6d, 0xc5, 0xfb, 0x64, 0xcc, 0xc9, 0x20, 0x3b, + 0x09, 0x12, 0x1e, 0x7c, 0x81, 0x11, 0x4f, 0x6a, 0xa4, 0xe3, 0x0d, 0xef, 0xf6, 0xc1, 0x8a, 0x31, + 0x50, 0x45, 0x9f, 0xc7, 0x1f, 0x9d, 0x69, 0x06, 0xcf, 0xe3, 0xbe, 0xeb, 0x26, 0x08, 0xfc, 0xc2, + 0xc2, 0x85, 0x8c, 0x40, 0xa1, 0x28, 0x44, 0xc8, 0x0a, 0x0e, 0xca, 0xc2, 0x82, 0xb2, 0x80, 0xa0, + 0x2e, 0x14, 0xd0, 0x3a, 0x08, 0xd1, 0xb2, 0x47, 0x45, 0x6b, 0x32, 0x3b, 0x04, 0x7b, 0x7e, 0x32, + 0xe0, 0x52, 0x25, 0x2c, 0x25, 0x73, 0x56, 0x69, 0x0d, 0x4e, 0x45, 0x73, 0x23, 0xd2, 0xd8, 0x54, + 0x35, 0x35, 0x32, 0x0d, 0x8d, 0x4c, 0x33, 0xa3, 0xd3, 0xc8, 0xf4, 0x92, 0xaa, 0x6c, 0x25, 0xb0, + 0x45, 0x31, 0xfa, 0x25, 0x30, 0xbd, 0xbe, 0x6b, 0x06, 0x0e, 0x7f, 0x57, 0xaf, 0xcb, 0xb7, 0xa1, + 0x6d, 0x14, 0x1c, 0x45, 0xb1, 0xbe, 0x9d, 0xcb, 0xd5, 0x59, 0x2d, 0x38, 0x4a, 0xb3, 0xdd, 0x90, + 0x62, 0x9b, 0x21, 0xed, 0xf6, 0xc2, 0xe8, 0x01, 0x5b, 0x0f, 0xd7, 0x17, 0xdf, 0x5a, 0xb5, 0x87, + 0x3f, 0xda, 0xcd, 0x9b, 0xfb, 0x56, 0xfb, 0xcb, 0x43, 0xed, 0xee, 0xdb, 0x4d, 0xed, 0xe1, 0xba, + 0xf5, 0x87, 0xea, 0xa4, 0x24, 0xdc, 0x52, 0x48, 0xbc, 0x95, 0x72, 0xf0, 0xcc, 0xa3, 0xc7, 0xad, + 0x7c, 0x3c, 0xfe, 0x42, 0xb0, 0x06, 0xf3, 0x21, 0xbd, 0x4f, 0x98, 0xf7, 0xe7, 0x2b, 0x7f, 0xac, + 0x90, 0x3c, 0xe2, 0xc1, 0x6e, 0x34, 0xde, 0x9f, 0x29, 0x2e, 0x19, 0xcc, 0xb9, 0x63, 0x74, 0xc3, + 0x17, 0xc3, 0xec, 0x73, 0x9f, 0x80, 0x50, 0x66, 0x5b, 0x03, 0x93, 0x80, 0x49, 0xc0, 0x24, 0x92, + 0x33, 0xe7, 0xd9, 0xf7, 0x5d, 0x66, 0x7a, 0x14, 0x3c, 0x52, 0xce, 0x80, 0xfb, 0x61, 0x3f, 0x7a, + 0xcc, 0xe2, 0xcc, 0xa6, 0x73, 0x41, 0x51, 0x8b, 0x70, 0x43, 0x70, 0x43, 0x70, 0x43, 0x92, 0x33, + 0x47, 0xb9, 0x58, 0x93, 0x62, 0x91, 0xa6, 0x64, 0xbd, 0x10, 0x0f, 0x4c, 0x2f, 0xec, 0x3a, 0x9c, + 0xce, 0x0b, 0x45, 0x2d, 0xc2, 0x0b, 0xc1, 0x0b, 0xc1, 0x0b, 0xed, 0x8f, 0x17, 0xda, 0xb7, 0x65, + 0x7d, 0x9f, 0x7b, 0xf2, 0x27, 0x93, 0x11, 0x2f, 0xe8, 0xde, 0x73, 0x4f, 0xea, 0xc0, 0x31, 0x81, + 0x05, 0x7a, 0xa1, 0xc5, 0x6a, 0x99, 0x43, 0x79, 0x94, 0x0e, 0xe3, 0x51, 0x5e, 0x2a, 0xab, 0x60, + 0xa9, 0x0c, 0x4b, 0x65, 0x31, 0x6f, 0x53, 0x7a, 0xa9, 0xec, 0xd9, 0xb4, 0xbe, 0xbf, 0x04, 0x7e, + 0xdf, 0xb3, 0x8d, 0x67, 0xd7, 0xb7, 0xbe, 0x1b, 0x2c, 0x08, 0xfc, 0x20, 0x54, 0x87, 0xaf, 0x75, + 0x0d, 0x83, 0xc1, 0xc0, 0x60, 0x60, 0x30, 0xc9, 0x99, 0x63, 0xf9, 0x7d, 0x8f, 0xb3, 0x40, 0xe9, + 0x78, 0x9b, 0x89, 0x29, 0x29, 0xbc, 0x15, 0x40, 0xf4, 0x9e, 0x06, 0xc1, 0xcb, 0x2c, 0x94, 0xef, + 0x65, 0x10, 0xef, 0xed, 0xa7, 0xae, 0x48, 0xa9, 0x63, 0x0b, 0x3f, 0xc1, 0x7a, 0x13, 0xe9, 0x6b, + 0x16, 0xba, 0x86, 0xa0, 0x7c, 0x56, 0xad, 0x9e, 0x9c, 0x56, 0xab, 0xa5, 0xd3, 0xa3, 0xd3, 0xd2, + 0xf9, 0xf1, 0x71, 0xf9, 0xa4, 0x7c, 0x9c, 0xe2, 0x51, 0xd9, 0xd1, 0x8b, 0x0c, 0x4f, 0x29, 0x56, + 0x87, 0x2c, 0xdf, 0x66, 0xc6, 0x9b, 0xe3, 0xbb, 0xc3, 0x8c, 0x8b, 0x80, 0x4f, 0x16, 0x1b, 0x04, + 0x97, 0x80, 0x4b, 0xc0, 0x25, 0xe0, 0x12, 0x70, 0x09, 0xb8, 0x04, 0x5c, 0x02, 0x2e, 0x89, 0xd9, + 0xcd, 0x43, 0x55, 0x83, 0x8d, 0x35, 0x0e, 0x02, 0x2c, 0x59, 0x68, 0x0f, 0x54, 0x02, 0x2a, 0x01, + 0x95, 0x80, 0x4a, 0x40, 0x25, 0xa0, 0x12, 0x50, 0x09, 0xa8, 0x44, 0x90, 0x4a, 0x42, 0x66, 0xf9, + 0x9e, 0x4d, 0x88, 0x25, 0x93, 0x06, 0xc1, 0x25, 0xe0, 0x12, 0x70, 0x09, 0xb8, 0x04, 0x5c, 0x02, + 0x2e, 0x01, 0x97, 0x80, 0x4b, 0xe2, 0x72, 0x49, 0xe8, 0x05, 0x04, 0x30, 0x32, 0x68, 0x45, 0x8d, + 0x40, 0xca, 0x20, 0x10, 0x10, 0x48, 0xd6, 0x08, 0x44, 0x76, 0x93, 0x57, 0xd4, 0x80, 0xf9, 0x46, + 0x78, 0x88, 0xd3, 0xa0, 0x31, 0x14, 0xf8, 0x8d, 0x63, 0xa4, 0xfc, 0xbd, 0xc7, 0x42, 0x54, 0xf7, + 0xa5, 0x68, 0x78, 0xc1, 0x82, 0x47, 0x3d, 0x8b, 0xd2, 0xbe, 0x0b, 0x73, 0xce, 0x66, 0x96, 0xd3, + 0x35, 0x5d, 0xa5, 0x04, 0x63, 0x29, 0x62, 0x56, 0x08, 0xda, 0x5a, 0xc2, 0xac, 0x0a, 0x8a, 0x06, + 0xcb, 0x0d, 0x47, 0x05, 0xc7, 0x27, 0x67, 0xa5, 0x56, 0xf0, 0x11, 0x86, 0x0a, 0xa7, 0x26, 0xcb, + 0x43, 0x9b, 0xe3, 0x85, 0xdc, 0xf4, 0x38, 0x1d, 0xb8, 0x4d, 0x1a, 0x04, 0xbc, 0x01, 0xde, 0x00, + 0x6f, 0x80, 0x37, 0xc0, 0x1b, 0xe0, 0x0d, 0xf0, 0x06, 0x78, 0x03, 0xbc, 0xe9, 0x80, 0x37, 0xce, + 0x82, 0x37, 0xd3, 0xa5, 0xa4, 0xb7, 0x71, 0x8b, 0xc0, 0x37, 0xe0, 0x1b, 0xf0, 0x2d, 0x75, 0xf8, + 0x16, 0x72, 0x93, 0x1b, 0x44, 0x46, 0x5a, 0xa0, 0x59, 0xe8, 0x8f, 0x9a, 0xfa, 0xe6, 0x8d, 0x62, + 0x43, 0xd1, 0x33, 0x3d, 0x5f, 0x6d, 0x2b, 0x0f, 0x20, 0xae, 0x04, 0x32, 0xd8, 0xf7, 0xd3, 0xba, + 0xf4, 0x6d, 0x48, 0x00, 0xd7, 0xa5, 0x9b, 0xeb, 0xba, 0x26, 0xe1, 0xd9, 0xa9, 0x83, 0xc6, 0x40, + 0x73, 0xa0, 0x39, 0xd0, 0x1c, 0xc4, 0x38, 0x88, 0x71, 0x10, 0xe3, 0xc0, 0x71, 0x10, 0xe3, 0x00, + 0x6d, 0x5a, 0xa0, 0xcd, 0xe0, 0x4e, 0x97, 0x91, 0x92, 0xdb, 0xa8, 0x45, 0xe0, 0x1b, 0xf0, 0x0d, + 0xf8, 0x96, 0x3a, 0x7c, 0x1b, 0xd8, 0x26, 0x77, 0xac, 0xef, 0x21, 0x29, 0xc0, 0x41, 0x8a, 0x83, + 0x14, 0x07, 0x84, 0x83, 0x14, 0x07, 0xaa, 0x4b, 0x05, 0xd5, 0x11, 0x38, 0x96, 0x29, 0xd0, 0x39, + 0x1e, 0x58, 0x0e, 0x2c, 0x07, 0x96, 0x83, 0x14, 0x07, 0x29, 0x0e, 0x52, 0x1c, 0x38, 0x0e, 0x52, + 0x1c, 0xa0, 0x4d, 0x0f, 0xb4, 0x51, 0x4b, 0x71, 0x93, 0x16, 0x81, 0x6f, 0xc0, 0x37, 0xe0, 0x1b, + 0xa4, 0x38, 0x48, 0x71, 0x90, 0xe2, 0x80, 0x70, 0x90, 0xe2, 0x40, 0x75, 0x09, 0x5c, 0x29, 0x5b, + 0xd2, 0x44, 0xf1, 0x10, 0xbd, 0xa8, 0x1d, 0x4d, 0x87, 0xe9, 0x0d, 0xcf, 0x7d, 0x3b, 0x54, 0xa8, + 0x37, 0x54, 0xd0, 0x73, 0xb0, 0x5e, 0x73, 0x70, 0x5f, 0xed, 0xfa, 0xe0, 0xbe, 0x52, 0x5c, 0xed, + 0xa9, 0xc3, 0x2c, 0xc3, 0xf2, 0x83, 0x60, 0x78, 0x04, 0xb4, 0xf1, 0x3c, 0xb2, 0x54, 0xc5, 0xda, + 0x4f, 0x2b, 0xda, 0x44, 0x2d, 0x4a, 0x54, 0x82, 0x52, 0x64, 0x76, 0xd4, 0xa2, 0x44, 0x2d, 0x4a, + 0x0d, 0x70, 0x8c, 0x5a, 0x94, 0x3b, 0x87, 0x5e, 0xd4, 0xa2, 0x2c, 0xa0, 0x16, 0x65, 0x1c, 0x3a, + 0x79, 0xe7, 0x8c, 0x1e, 0x4f, 0x86, 0x8d, 0x82, 0x4f, 0xc0, 0x27, 0xe0, 0x13, 0xf0, 0x09, 0xf8, + 0x04, 0x7c, 0x02, 0x3e, 0x01, 0x9f, 0x08, 0xf0, 0x49, 0xdf, 0x1b, 0xc3, 0x84, 0xf9, 0xec, 0x32, + 0xb2, 0x33, 0xc6, 0xd6, 0xb6, 0x0c, 0x52, 0x01, 0xa9, 0x80, 0x54, 0x40, 0x2a, 0x20, 0x15, 0x90, + 0x0a, 0x48, 0x05, 0xa4, 0x22, 0x4d, 0x2a, 0x83, 0x98, 0xa5, 0x05, 0x54, 0x46, 0x0d, 0x83, 0x53, + 0xc0, 0x29, 0xe0, 0x14, 0x70, 0x0a, 0x38, 0x05, 0x9c, 0x02, 0x4e, 0x01, 0xa7, 0xc4, 0xec, 0xe6, + 0x9e, 0x1f, 0x72, 0x63, 0xc0, 0x14, 0xcf, 0x8c, 0xe0, 0x14, 0xb2, 0xb9, 0xd6, 0x70, 0x1a, 0x19, + 0x88, 0x64, 0xcf, 0x88, 0x04, 0xa7, 0x91, 0xe9, 0x31, 0x4a, 0x4a, 0xe3, 0x5c, 0x6b, 0xa4, 0x78, + 0xfb, 0x43, 0xd3, 0xdb, 0x1f, 0xd3, 0xde, 0xc5, 0x1b, 0x20, 0x0b, 0x73, 0x2f, 0x3b, 0x2f, 0xf0, + 0x96, 0xcf, 0xf0, 0xfa, 0x87, 0xdc, 0x78, 0xe0, 0x0d, 0x5e, 0xbc, 0xc1, 0x8b, 0x77, 0x3d, 0x92, + 0x49, 0x9a, 0xd4, 0xbf, 0x1f, 0xc7, 0x92, 0x81, 0xe2, 0x40, 0x71, 0xa0, 0x38, 0x50, 0x1c, 0x28, + 0x0e, 0x14, 0x07, 0x8a, 0x03, 0xc5, 0xed, 0x1f, 0xc5, 0xe1, 0x7c, 0xb2, 0x9d, 0x72, 0x1c, 0x18, + 0x0e, 0x75, 0x58, 0x12, 0xe5, 0x37, 0x9c, 0x4f, 0xb6, 0x27, 0x10, 0x87, 0x4a, 0x2c, 0xa8, 0xc4, + 0x82, 0x4a, 0x2c, 0x38, 0x9f, 0x4c, 0x3d, 0x64, 0xe0, 0x7c, 0x32, 0xa8, 0x72, 0x50, 0xe5, 0xa0, + 0xca, 0x41, 0x95, 0x83, 0x2a, 0xf7, 0xff, 0xb3, 0x77, 0x2e, 0x3d, 0x8d, 0x23, 0x51, 0x14, 0xde, + 0xf3, 0x2b, 0x90, 0xf7, 0xa1, 0x49, 0x80, 0x00, 0xcb, 0x40, 0xa7, 0x19, 0x34, 0x79, 0x30, 0xc1, + 0x68, 0xd4, 0x0b, 0x14, 0x99, 0xa4, 0xba, 0x65, 0xb5, 0x63, 0x33, 0xb6, 0x83, 0x9a, 0x45, 0xff, + 0xf7, 0x11, 0x79, 0x90, 0x00, 0x21, 0xb8, 0x1e, 0x0e, 0x76, 0xe5, 0x9b, 0x05, 0x1a, 0x89, 0x76, + 0xe1, 0x5b, 0x75, 0x1f, 0xe7, 0x9e, 0xaa, 0x3a, 0x06, 0xd0, 0xc1, 0xca, 0x81, 0xde, 0xf2, 0x47, + 0x6f, 0x7c, 0xa8, 0x0c, 0x56, 0x0e, 0x56, 0x6e, 0x6b, 0xf0, 0x1b, 0xea, 0xc8, 0x70, 0x72, 0x40, + 0x38, 0x38, 0x39, 0x50, 0x9d, 0xc5, 0xa8, 0x8e, 0x0f, 0x95, 0xc1, 0xc9, 0xc1, 0xc9, 0xc1, 0xc9, + 0xc1, 0xc9, 0xc1, 0xc9, 0x01, 0xe8, 0xe0, 0xe4, 0x40, 0x6f, 0xe5, 0x42, 0x6f, 0x7c, 0xb1, 0x0c, + 0x4e, 0x0e, 0x4e, 0x0e, 0x4e, 0x0e, 0x4e, 0x0e, 0x4e, 0x0e, 0x08, 0x07, 0x27, 0x07, 0xaa, 0x2b, + 0x06, 0xaa, 0xe3, 0x8b, 0x65, 0xaf, 0xbf, 0x58, 0x66, 0x40, 0x9b, 0x68, 0x37, 0xcf, 0x2f, 0x97, + 0x5d, 0x45, 0x49, 0xfa, 0x4d, 0x0c, 0xce, 0x44, 0xa1, 0xbf, 0x5f, 0x76, 0x1f, 0x0b, 0x83, 0x72, + 0x51, 0x4b, 0x83, 0xa1, 0x16, 0x85, 0x5a, 0x94, 0x26, 0x66, 0x47, 0x2d, 0x4a, 0xc7, 0xfb, 0x50, + 0x8b, 0x92, 0x0a, 0x52, 0x3a, 0x6f, 0x76, 0x4f, 0x36, 0xdd, 0x7d, 0xb3, 0x7b, 0x62, 0x7f, 0xeb, + 0xcd, 0xee, 0x09, 0xbb, 0x27, 0xf4, 0xd9, 0xa5, 0xe9, 0xb3, 0x51, 0x8b, 0x02, 0xc5, 0x81, 0xe2, + 0x40, 0x71, 0xa0, 0x38, 0x50, 0x1c, 0x28, 0x0e, 0x14, 0x07, 0x8a, 0xdb, 0x3a, 0x14, 0x87, 0x5a, + 0xd4, 0xa7, 0xe2, 0x38, 0x30, 0x1c, 0x67, 0x60, 0x36, 0x8a, 0xdf, 0x50, 0x8b, 0xda, 0x12, 0x10, + 0xc7, 0x29, 0x18, 0x4e, 0xc1, 0x70, 0x0a, 0x06, 0xb5, 0x28, 0xfd, 0x92, 0x81, 0x5a, 0x14, 0xac, + 0x1c, 0xac, 0x1c, 0xac, 0x1c, 0xac, 0x1c, 0xac, 0x1c, 0x80, 0x0e, 0x56, 0x0e, 0xf4, 0x96, 0x3f, + 0x7a, 0x43, 0x2d, 0x0a, 0x56, 0x0e, 0x56, 0x6e, 0x6b, 0xf0, 0x1b, 0x37, 0xd3, 0xe0, 0xe4, 0x80, + 0x70, 0x70, 0x72, 0xa0, 0x3a, 0x8b, 0x51, 0x1d, 0x6a, 0x51, 0x70, 0x72, 0x70, 0x72, 0x70, 0x72, + 0x70, 0x72, 0x70, 0x72, 0x00, 0x3a, 0x38, 0x39, 0xd0, 0x5b, 0xb9, 0xd0, 0x1b, 0x6a, 0x51, 0x70, + 0x72, 0x70, 0x72, 0x70, 0x72, 0x70, 0x72, 0x70, 0x72, 0x40, 0x38, 0x38, 0x39, 0x50, 0x5d, 0x31, + 0x50, 0x1d, 0x6a, 0x51, 0x6f, 0xd4, 0xa2, 0xb4, 0xa5, 0x89, 0x76, 0x73, 0x15, 0x8b, 0x8a, 0x45, + 0xf1, 0xb5, 0xa2, 0xfe, 0xab, 0x3c, 0xcc, 0xd2, 0x83, 0xa6, 0x4e, 0xd4, 0x7c, 0x20, 0x34, 0xa2, + 0xd0, 0x88, 0xd2, 0x44, 0xea, 0x68, 0x44, 0xe9, 0x78, 0x1f, 0x1a, 0x51, 0xf4, 0xda, 0xf4, 0xda, + 0xec, 0x95, 0x68, 0xe1, 0xf6, 0x1a, 0x7d, 0xb6, 0xda, 0x72, 0xb0, 0x55, 0xc2, 0x56, 0x09, 0x4d, + 0x75, 0x69, 0x9a, 0x6a, 0xa4, 0xa1, 0x00, 0x6f, 0x80, 0x37, 0xc0, 0x1b, 0xe0, 0x0d, 0xf0, 0x06, + 0x78, 0x03, 0xbc, 0x01, 0xde, 0xb6, 0x05, 0xbc, 0xa1, 0x08, 0x05, 0x7c, 0x03, 0xbe, 0x6d, 0x0f, + 0x7c, 0x43, 0x11, 0x6a, 0x4b, 0x40, 0x1c, 0x27, 0x5d, 0x38, 0xe9, 0xc2, 0x49, 0x17, 0x14, 0xa1, + 0xf4, 0x4b, 0x06, 0x8a, 0x50, 0xa0, 0x39, 0xd0, 0x1c, 0x64, 0x1c, 0x64, 0x1c, 0x64, 0x1c, 0x38, + 0x0e, 0x32, 0x0e, 0xd0, 0x96, 0x1b, 0x68, 0x43, 0x08, 0x0a, 0xf8, 0x06, 0x7c, 0xdb, 0x1a, 0xf8, + 0xc6, 0xa5, 0x33, 0xa8, 0x38, 0x20, 0x1c, 0x54, 0x1c, 0xa8, 0xce, 0x62, 0x54, 0x87, 0x10, 0x14, + 0x58, 0x0e, 0x2c, 0x07, 0x15, 0x07, 0x15, 0x07, 0x15, 0x07, 0x8e, 0x83, 0x8a, 0x03, 0xb4, 0x95, + 0x02, 0xb4, 0xa1, 0xff, 0x04, 0x7c, 0x03, 0xbe, 0x41, 0xc5, 0x41, 0xc5, 0x41, 0xc5, 0x01, 0xe1, + 0xa0, 0xe2, 0x40, 0x75, 0xc5, 0x40, 0x75, 0xe8, 0x3f, 0xbd, 0xd6, 0x7f, 0xd2, 0x93, 0x1c, 0xda, + 0xcd, 0x53, 0xfb, 0xe9, 0x9f, 0x69, 0xd0, 0x15, 0x58, 0xf8, 0x29, 0x1e, 0xfa, 0x95, 0x51, 0xf2, + 0x53, 0x5f, 0xf8, 0x69, 0x3e, 0x90, 0x9e, 0xf0, 0xd3, 0x3e, 0xc2, 0x4f, 0xa6, 0xa1, 0x3b, 0xc2, + 0x4f, 0x79, 0x67, 0x49, 0x6d, 0x34, 0xbe, 0x74, 0x3b, 0x25, 0xf6, 0x43, 0x1d, 0xdd, 0xa6, 0x67, + 0xe6, 0xf4, 0xa4, 0xc0, 0x39, 0x27, 0x11, 0x0f, 0x22, 0x16, 0xc1, 0x63, 0x45, 0xc4, 0x71, 0x14, + 0x8b, 0x61, 0x65, 0x8e, 0xea, 0xb5, 0x93, 0xd0, 0xbb, 0x23, 0x93, 0x95, 0xc8, 0x4a, 0x64, 0x25, + 0x45, 0xcf, 0x19, 0x44, 0xe3, 0x30, 0x15, 0xb1, 0x16, 0x33, 0x60, 0x80, 0x11, 0x30, 0xd4, 0xb1, + 0x1b, 0x20, 0x4d, 0x4c, 0x76, 0xe8, 0x86, 0xdb, 0x3d, 0xd3, 0x1d, 0x79, 0x1e, 0xbd, 0x9c, 0x81, + 0x0e, 0xdc, 0x68, 0xe7, 0x9d, 0xd7, 0x12, 0xe4, 0xd7, 0x69, 0xe7, 0xb2, 0x2a, 0x9f, 0xd4, 0xd1, + 0xde, 0x16, 0x18, 0xa9, 0xa4, 0xb1, 0x7f, 0x37, 0x4e, 0xbd, 0xf8, 0xb1, 0x92, 0x04, 0x51, 0x5a, + 0xf9, 0x19, 0x7b, 0xe1, 0x38, 0xf0, 0x62, 0x3f, 0x7d, 0xd4, 0xc7, 0x2a, 0x6b, 0xc6, 0x06, 0xad, + 0x80, 0x56, 0x40, 0x2b, 0x8a, 0x9e, 0xe3, 0x0f, 0x45, 0x98, 0xfa, 0xe9, 0x63, 0x2c, 0x7e, 0x98, + 0x68, 0xa4, 0x34, 0x32, 0xb6, 0x73, 0x39, 0x7b, 0x95, 0x33, 0x2f, 0x31, 0xb8, 0x95, 0xea, 0xf6, + 0x2e, 0xcf, 0x6e, 0xdc, 0x46, 0xef, 0x7b, 0xff, 0xba, 0xd5, 0x75, 0xfb, 0x17, 0xbd, 0x46, 0xe7, + 0xa6, 0xd5, 0xe8, 0x5d, 0xba, 0xdf, 0x75, 0x9d, 0x72, 0x52, 0xb8, 0x12, 0x23, 0x7b, 0x22, 0x86, + 0x2a, 0xf3, 0xb2, 0xcd, 0x53, 0x73, 0x6b, 0x7b, 0x47, 0x17, 0x4e, 0x11, 0x20, 0x48, 0x6e, 0x16, + 0xda, 0x6e, 0x5f, 0x75, 0xaf, 0x66, 0xc4, 0x44, 0xad, 0x11, 0x6e, 0x37, 0x9d, 0x17, 0x37, 0x83, + 0x57, 0xd2, 0x09, 0x09, 0x5b, 0xf1, 0xc6, 0x69, 0x64, 0x00, 0xa1, 0x2c, 0x8f, 0x06, 0x26, 0x01, + 0x93, 0x80, 0x49, 0x14, 0x3d, 0xe7, 0x2e, 0x8a, 0x02, 0xe1, 0x85, 0x26, 0xf0, 0x48, 0xb5, 0x04, + 0xe9, 0x47, 0xfc, 0xbe, 0x17, 0x83, 0x54, 0x0c, 0xcd, 0xa5, 0xa0, 0xe7, 0x11, 0x49, 0x43, 0xa4, + 0x21, 0xd2, 0x90, 0xa2, 0xe7, 0x6c, 0xc7, 0xf6, 0xd2, 0x3c, 0x67, 0xc4, 0x62, 0xf0, 0x60, 0x2e, + 0x03, 0x4d, 0x46, 0x23, 0xfb, 0x90, 0x7d, 0xc8, 0x3e, 0x64, 0x9f, 0x0c, 0xd9, 0x27, 0x8d, 0xbd, + 0x30, 0x19, 0xf9, 0xa9, 0xb9, 0x0c, 0xf4, 0x3c, 0x22, 0x59, 0x88, 0x2c, 0x44, 0x16, 0x22, 0x0b, + 0xad, 0x79, 0xc7, 0x71, 0xe8, 0x3d, 0x78, 0x7e, 0xe0, 0xdd, 0x05, 0xc2, 0xdc, 0xe9, 0x9a, 0x55, + 0x83, 0x92, 0x8b, 0xc8, 0x45, 0xe4, 0x22, 0x45, 0xcf, 0xe1, 0x60, 0xcd, 0xab, 0x17, 0xe1, 0x60, + 0x8d, 0xd6, 0x7f, 0x1c, 0xac, 0x29, 0xe4, 0xaa, 0xd8, 0x7e, 0xb0, 0x66, 0x27, 0x47, 0x1f, 0xd5, + 0xbd, 0x82, 0x92, 0xeb, 0xd5, 0x13, 0x47, 0xe5, 0xf0, 0x73, 0x3e, 0x57, 0x4d, 0xe4, 0x8a, 0x67, + 0xf6, 0x25, 0xcb, 0xf6, 0x2f, 0x33, 0x2e, 0xaa, 0xea, 0x62, 0xe6, 0xb4, 0x88, 0x12, 0xcb, 0x67, + 0x7e, 0xd9, 0xb2, 0x2d, 0xd8, 0xc7, 0xd3, 0x9f, 0x61, 0xea, 0x9d, 0xa9, 0xb3, 0x66, 0x9d, 0xf1, + 0x17, 0xdf, 0xca, 0xc8, 0xea, 0xe3, 0x92, 0x5f, 0x6e, 0x5f, 0x20, 0xf8, 0x8c, 0xa2, 0x22, 0x2a, + 0x88, 0x5d, 0x13, 0xa1, 0xab, 0x22, 0x72, 0x6d, 0x04, 0xae, 0x8d, 0xb8, 0xf5, 0x11, 0xb6, 0xd9, + 0xb0, 0x97, 0xfd, 0x32, 0xba, 0xe3, 0x0d, 0x47, 0x7e, 0x58, 0x91, 0x73, 0xdb, 0x37, 0xab, 0xbe, + 0x3c, 0x88, 0xe4, 0xfc, 0xa9, 0xe1, 0x16, 0xe5, 0xb6, 0x54, 0xa7, 0x1d, 0x35, 0xd4, 0x86, 0xea, + 0xb6, 0x9f, 0xc6, 0xda, 0x4e, 0x63, 0xed, 0xa6, 0xb9, 0x36, 0x33, 0x5f, 0x80, 0xa3, 0xdc, 0x4e, + 0xae, 0x72, 0xf4, 0x89, 0xbc, 0x85, 0xca, 0xf2, 0xcf, 0xd3, 0xf7, 0xa1, 0xc2, 0xb3, 0xcd, 0x70, + 0x3c, 0x7a, 0xb2, 0xe0, 0x4f, 0x5e, 0x18, 0x44, 0x22, 0x67, 0x0f, 0x45, 0x32, 0x88, 0xfd, 0x7b, + 0x25, 0xbc, 0xb8, 0xa4, 0x65, 0xb6, 0x18, 0x84, 0xcc, 0x41, 0xe6, 0xb0, 0x36, 0x73, 0x28, 0x93, + 0xe1, 0x8a, 0x24, 0x78, 0x3e, 0x31, 0xef, 0x87, 0x43, 0xf1, 0x5b, 0x3d, 0xda, 0xa7, 0x8f, 0x13, + 0xe7, 0xc4, 0xb9, 0xb5, 0x71, 0x3e, 0xf6, 0xc3, 0xf4, 0xa0, 0xa6, 0x11, 0xe7, 0xc7, 0x0a, 0x8f, + 0xea, 0xb1, 0xca, 0x1a, 0xf4, 0xba, 0x09, 0x16, 0xd9, 0x94, 0xd0, 0x9c, 0x21, 0xd6, 0xd8, 0x24, + 0x2f, 0xa9, 0x23, 0x0c, 0x68, 0x82, 0x1d, 0x36, 0x3d, 0xb5, 0x87, 0xb5, 0xd3, 0xc3, 0xd3, 0xfa, + 0x71, 0xed, 0xf4, 0xa8, 0x40, 0x73, 0xbc, 0x21, 0xee, 0xf5, 0xb6, 0x00, 0xe5, 0x37, 0xf0, 0xc3, + 0x5f, 0xba, 0xbd, 0xfa, 0xd2, 0x18, 0x14, 0x62, 0x0a, 0xb1, 0xb5, 0x85, 0x58, 0x84, 0xe3, 0x91, + 0x88, 0x3d, 0x85, 0xce, 0xd2, 0xaa, 0x2e, 0xfd, 0x15, 0x2b, 0x3f, 0x65, 0x2d, 0xd4, 0x93, 0xc7, + 0xaa, 0xd1, 0x48, 0x23, 0xa4, 0x11, 0x6b, 0xd3, 0x88, 0xde, 0x1d, 0x67, 0x9d, 0xbb, 0xcd, 0x66, + 0xee, 0x34, 0x3f, 0x1b, 0xd2, 0xea, 0x5e, 0x5c, 0x9e, 0x37, 0x5a, 0xfd, 0x66, 0xab, 0xd9, 0x6e, + 0x76, 0xdc, 0xfe, 0x55, 0xaf, 0xeb, 0x76, 0xcf, 0xbb, 0xad, 0xbe, 0xfb, 0xfd, 0xaa, 0xa9, 0xea, + 0x4f, 0x06, 0xae, 0x31, 0x1b, 0xba, 0xaa, 0xfd, 0x64, 0x4e, 0xbf, 0xeb, 0x76, 0x9c, 0xcf, 0x00, + 0xeb, 0x26, 0x6d, 0x68, 0xba, 0x7f, 0x35, 0x7b, 0x9d, 0xa6, 0xbb, 0xe9, 0x33, 0x5a, 0xb7, 0x79, + 0x87, 0x6e, 0x4e, 0xe5, 0x2d, 0xba, 0xbf, 0xf3, 0x06, 0xbf, 0x2a, 0xa3, 0x68, 0xa8, 0x55, 0xd7, + 0x96, 0x87, 0xa1, 0xa0, 0x51, 0xd0, 0xac, 0x2d, 0x68, 0x2f, 0x5c, 0xfd, 0x73, 0x37, 0xb1, 0x14, + 0x9e, 0xfd, 0x2a, 0x7e, 0x78, 0xe3, 0x60, 0xb2, 0x4a, 0x9d, 0x6e, 0xa7, 0xe9, 0x14, 0x20, 0x05, + 0xc5, 0x5e, 0x2a, 0x2a, 0x83, 0xc0, 0x4b, 0x12, 0xf5, 0xfc, 0xb3, 0x34, 0x06, 0xc9, 0x87, 0xe4, + 0x03, 0x9a, 0x2e, 0x3a, 0x9a, 0x5e, 0x28, 0x03, 0xf5, 0x1a, 0x6e, 0xb3, 0x7f, 0xde, 0x6a, 0x5c, + 0x5f, 0x5b, 0x82, 0xa4, 0x27, 0xf2, 0x31, 0x13, 0xab, 0x8e, 0xf6, 0xf7, 0x2f, 0xca, 0x8c, 0xa7, + 0x17, 0x96, 0x9c, 0x58, 0x63, 0x49, 0xb5, 0x6a, 0x8d, 0x29, 0x87, 0xb6, 0x18, 0x52, 0xb7, 0x68, + 0x49, 0xac, 0x89, 0x13, 0x8b, 0x2c, 0xb1, 0xc5, 0x10, 0x4b, 0xec, 0xd0, 0xd3, 0xc5, 0x2b, 0x94, + 0x25, 0xd6, 0x04, 0xc9, 0xa9, 0x35, 0x96, 0xd4, 0x8e, 0xac, 0x89, 0x77, 0x6b, 0x2c, 0x39, 0xb6, + 0xa9, 0x2c, 0xda, 0x62, 0xca, 0x81, 0x9e, 0x25, 0x5b, 0x44, 0x92, 0xa7, 0x22, 0x49, 0x2b, 0x89, + 0xff, 0x33, 0xf4, 0x02, 0x75, 0x8a, 0x6a, 0x79, 0x10, 0x38, 0x2a, 0x38, 0x2a, 0x6b, 0x39, 0x2a, + 0x75, 0x05, 0x49, 0x45, 0xe5, 0xc8, 0x9c, 0x82, 0x3e, 0xf6, 0xef, 0x2a, 0xf7, 0x71, 0x94, 0x46, + 0x83, 0x48, 0x27, 0xec, 0x5f, 0x0c, 0x43, 0xe0, 0x13, 0xf8, 0x90, 0xd3, 0xeb, 0x83, 0xbf, 0x48, + 0xe4, 0xb4, 0x8d, 0x87, 0x3c, 0xaa, 0x17, 0xcd, 0xd2, 0x1f, 0xf2, 0xe8, 0xba, 0x37, 0x87, 0xe5, + 0x37, 0xe2, 0xeb, 0xcd, 0x41, 0xe9, 0x8d, 0xb8, 0x76, 0xdb, 0xb5, 0xa3, 0x7a, 0xf9, 0xd7, 0xe2, + 0xfc, 0xb8, 0x7e, 0x62, 0x81, 0x15, 0x87, 0x27, 0x36, 0xc4, 0x76, 0xad, 0xfc, 0x19, 0xaa, 0xba, + 0x7f, 0xd1, 0xec, 0xb7, 0x1a, 0x1d, 0x1b, 0x96, 0xe3, 0xc0, 0x86, 0x54, 0x6b, 0x85, 0x4f, 0xed, + 0x5b, 0x50, 0xbb, 0xaf, 0xdd, 0x76, 0xb5, 0x6e, 0xc5, 0x5a, 0xf4, 0xdb, 0xad, 0x0b, 0x1b, 0x42, + 0xe3, 0xbc, 0x63, 0x47, 0xba, 0xfd, 0xd7, 0x8e, 0x74, 0x5b, 0xb5, 0x02, 0x9f, 0xd7, 0x6c, 0x30, + 0xc2, 0x82, 0xc8, 0x78, 0x2a, 0x7d, 0x36, 0xd4, 0x8c, 0x7a, 0xf9, 0x1b, 0xbe, 0x43, 0x1b, 0xca, + 0x77, 0xf7, 0xab, 0x0d, 0xad, 0xf7, 0x79, 0xf5, 0xb4, 0xb6, 0xc5, 0x9b, 0x5f, 0xb6, 0x4a, 0x25, + 0xca, 0xde, 0xcb, 0x36, 0x2c, 0x96, 0x28, 0xa1, 0x6f, 0x99, 0x41, 0x2e, 0x71, 0x47, 0x63, 0x71, + 0x9c, 0xbf, 0xc5, 0x63, 0x56, 0xc5, 0x18, 0xa7, 0xe5, 0x27, 0x69, 0x23, 0x4d, 0xb3, 0x29, 0xdf, + 0x39, 0x6d, 0x3f, 0x6c, 0x06, 0x62, 0x24, 0xc2, 0x89, 0xf0, 0x40, 0x38, 0x0e, 0x82, 0x0c, 0xba, + 0x8e, 0x6d, 0xef, 0xb7, 0xfc, 0x43, 0xdd, 0x78, 0x28, 0x62, 0x31, 0x3c, 0x7b, 0x9c, 0x3d, 0xa2, + 0x35, 0x21, 0x92, 0x5e, 0x9a, 0x83, 0x77, 0x3a, 0x99, 0xf4, 0x2f, 0x0d, 0xfa, 0xe3, 0x7a, 0x4f, + 0x7c, 0xdf, 0xbf, 0x56, 0xff, 0xe6, 0x9d, 0x09, 0xce, 0x3a, 0xb1, 0x06, 0x27, 0x74, 0xcd, 0x44, + 0x9a, 0x99, 0xc0, 0xd5, 0x13, 0xf7, 0x76, 0x5a, 0x56, 0x4c, 0x89, 0x13, 0xdd, 0xcf, 0x6e, 0xcd, + 0x7b, 0xc1, 0xe4, 0x8a, 0xd0, 0xfb, 0xb7, 0x5a, 0x16, 0x5b, 0x66, 0x6f, 0x1e, 0x79, 0x67, 0xaa, + 0xd7, 0x2b, 0x97, 0x7e, 0xb8, 0xef, 0x97, 0x65, 0x7f, 0x4f, 0x72, 0x1f, 0x2f, 0xeb, 0x7e, 0x9d, + 0xf4, 0xbe, 0x9c, 0xf4, 0xfe, 0x9b, 0xfc, 0x3e, 0x9b, 0x9c, 0x9b, 0x7f, 0xa4, 0x0c, 0xea, 0x64, + 0xba, 0x41, 0xf9, 0x3c, 0xbd, 0x19, 0x2e, 0x4a, 0x66, 0x14, 0xaa, 0xcd, 0x2c, 0x50, 0x2b, 0xb3, + 0xbd, 0xab, 0xb8, 0x9d, 0x2b, 0xbb, 0x7d, 0xab, 0xbc, 0x5d, 0xab, 0xbc, 0x3d, 0xab, 0xbe, 0x1d, + 0xab, 0x57, 0x8f, 0xb3, 0x0a, 0xcb, 0x3a, 0x83, 0xf9, 0x6a, 0x4a, 0x4a, 0x20, 0xcf, 0x9e, 0xcb, + 0x59, 0x03, 0x79, 0x1f, 0x0d, 0x64, 0x63, 0xae, 0xa8, 0xef, 0x92, 0xb6, 0xe0, 0xf9, 0x37, 0x05, + 0xf0, 0xcb, 0xd3, 0xcf, 0x2f, 0x52, 0x2e, 0xad, 0x51, 0xfd, 0xbb, 0x8b, 0x3f, 0xdf, 0x7e, 0xfa, + 0xeb, 0xfd, 0xa7, 0x9f, 0xfd, 0x99, 0xcf, 0x6f, 0x50, 0xfc, 0x7c, 0x72, 0xa3, 0xd8, 0x1f, 0xca, + 0xc7, 0xfe, 0xfc, 0x41, 0xb9, 0xe0, 0xdf, 0x27, 0xf8, 0x09, 0xfe, 0xd7, 0xaf, 0x23, 0x7d, 0x0c, + 0x68, 0x71, 0x31, 0x5e, 0x78, 0x3f, 0xe4, 0x8e, 0xfe, 0x3c, 0x57, 0x21, 0x09, 0xcd, 0x46, 0xe7, + 0x6a, 0x96, 0x5f, 0xf6, 0xf6, 0xa6, 0xdd, 0xfe, 0x97, 0xb9, 0xf3, 0xf3, 0x95, 0x02, 0xbe, 0x52, + 0xb0, 0x25, 0x41, 0x2a, 0xfd, 0x95, 0x02, 0xb4, 0xc6, 0x77, 0x37, 0xe4, 0xe4, 0xba, 0xce, 0x6e, + 0xcc, 0xe9, 0x8d, 0x39, 0xbf, 0xb9, 0x20, 0x50, 0xa4, 0xb5, 0xd1, 0x1a, 0x57, 0x99, 0x0b, 0x69, + 0x34, 0xa9, 0x89, 0x2a, 0x89, 0x75, 0x62, 0xbd, 0x84, 0xb1, 0x3e, 0xf6, 0xc3, 0xb4, 0x5a, 0xd7, + 0x88, 0xf5, 0x3a, 0x7a, 0xe3, 0x6a, 0xc3, 0xa0, 0x37, 0x9e, 0xfb, 0xd4, 0xd6, 0x8f, 0x8e, 0x0e, + 0x90, 0x1a, 0xff, 0x94, 0xea, 0xfb, 0x20, 0xc2, 0x61, 0x14, 0x6b, 0xd5, 0xdf, 0xc5, 0x10, 0x54, + 0x60, 0x2a, 0x30, 0x68, 0x7b, 0xf3, 0x68, 0xdb, 0x4e, 0x5a, 0x7d, 0x43, 0x87, 0x64, 0x56, 0xb3, + 0xea, 0xc5, 0x3b, 0x22, 0x93, 0xad, 0xcd, 0xe1, 0x90, 0xcc, 0x26, 0x7c, 0x33, 0xbf, 0x23, 0x32, + 0x2b, 0xbd, 0xd1, 0x96, 0x03, 0x32, 0x59, 0x0f, 0x90, 0x18, 0x9c, 0x3f, 0x9d, 0x23, 0x32, 0xeb, + 0xe9, 0xf3, 0x4c, 0x74, 0x79, 0xe6, 0xa3, 0x30, 0x35, 0x8e, 0xc2, 0x18, 0x3f, 0x0a, 0x93, 0xbf, + 0x43, 0x7f, 0x54, 0xa2, 0x14, 0x9d, 0x78, 0x4d, 0xf1, 0x59, 0xe1, 0xb9, 0x3b, 0x6b, 0xe6, 0xe2, + 0xa3, 0x39, 0x50, 0xb7, 0xdd, 0x59, 0x19, 0x30, 0x0a, 0xd6, 0xbe, 0xb4, 0x73, 0x61, 0xcd, 0xf4, + 0xff, 0x66, 0xf6, 0xbc, 0x67, 0x87, 0xe3, 0x27, 0xdf, 0xbc, 0x5f, 0xa2, 0x17, 0x45, 0x6f, 0x5d, + 0xee, 0xb5, 0x6d, 0xce, 0xf2, 0xaf, 0x5e, 0xbc, 0xe9, 0xf2, 0x8b, 0xfc, 0xd9, 0xf9, 0xf3, 0x3f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x58, 0x11, 0x83, 0xc0, 0xed, + 0x12, 0x00, + } +) + + +// ΛEnumTypes is a map, keyed by a YANG schema path, of the enumerated types that +// correspond with the leaf. The type is represented as a reflect.Type. The naming +// of the map ensures that there are no clashes with valid YANG identifiers. +var ΛEnumTypes = map[string][]reflect.Type{ + "/components/component/port/breakout-mode/config/channel-speed": []reflect.Type{ + reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)), + }, + "/components/component/port/breakout-mode/state/channel-speed": []reflect.Type{ + reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)), + }, + "/components/component/state/oper-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatformTypes_COMPONENT_OPER_STATUS)(0)), + }, + "/components/component/state/temperature/alarm-severity": []reflect.Type{ + reflect.TypeOf((E_OpenconfigAlarmTypes_OPENCONFIG_ALARM_SEVERITY)(0)), + }, + "/components/component/state/type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatformTypes_OPENCONFIG_SOFTWARE_COMPONENT)(0)), + reflect.TypeOf((E_OpenconfigPlatformTypes_OPENCONFIG_HARDWARE_COMPONENT)(0)), + }, + "/components/component/transceiver/config/ethernet-pmd-preconf": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)), + }, + "/components/component/transceiver/config/fec-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_MODE_TYPE)(0)), + }, + "/components/component/transceiver/config/form-factor-preconf": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)), + }, + "/components/component/transceiver/state/connector-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_FIBER_CONNECTOR_TYPE)(0)), + }, + "/components/component/transceiver/state/ethernet-pmd": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)), + }, + "/components/component/transceiver/state/ethernet-pmd-preconf": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_ETHERNET_PMD_TYPE)(0)), + }, + "/components/component/transceiver/state/fec-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_MODE_TYPE)(0)), + }, + "/components/component/transceiver/state/fec-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatformTypes_FEC_STATUS_TYPE)(0)), + }, + "/components/component/transceiver/state/form-factor": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)), + }, + "/components/component/transceiver/state/form-factor-preconf": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRANSCEIVER_FORM_FACTOR_TYPE)(0)), + }, + "/components/component/transceiver/state/otn-compliance-code": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_OTN_APPLICATION_CODE)(0)), + }, + "/components/component/transceiver/state/present": []reflect.Type{ + reflect.TypeOf((E_OpenconfigPlatform_Components_Component_Transceiver_State_Present)(0)), + }, + "/components/component/transceiver/state/sonet-sdh-compliance-code": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_SONET_APPLICATION_CODE)(0)), + }, + "/interfaces-state/interface/admin-status": []reflect.Type{ + reflect.TypeOf((E_IETFInterfaces_InterfacesState_Interface_AdminStatus)(0)), + }, + "/interfaces-state/interface/oper-status": []reflect.Type{ + reflect.TypeOf((E_IETFInterfaces_InterfacesState_Interface_OperStatus)(0)), + }, + "/interfaces-state/interface/type": []reflect.Type{ + reflect.TypeOf((E_IETFInterfaces_InterfaceType)(0)), + }, + "/interfaces/interface/config/type": []reflect.Type{ + reflect.TypeOf((E_IETFInterfaces_InterfaceType)(0)), + }, + "/interfaces/interface/ethernet/config/duplex-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode)(0)), + }, + "/interfaces/interface/ethernet/config/port-speed": []reflect.Type{ + reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)), + }, + "/interfaces/interface/ethernet/state/duplex-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_Config_DuplexMode)(0)), + }, + "/interfaces/interface/ethernet/state/negotiated-duplex-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_Ethernet_State_NegotiatedDuplexMode)(0)), + }, + "/interfaces/interface/ethernet/state/negotiated-port-speed": []reflect.Type{ + reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)), + }, + "/interfaces/interface/ethernet/state/port-speed": []reflect.Type{ + reflect.TypeOf((E_OpenconfigIfEthernet_ETHERNET_SPEED)(0)), + }, + "/interfaces/interface/state/admin-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus)(0)), + }, + "/interfaces/interface/state/oper-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus)(0)), + }, + "/interfaces/interface/state/type": []reflect.Type{ + reflect.TypeOf((E_IETFInterfaces_InterfaceType)(0)), + }, + "/interfaces/interface/subinterfaces/subinterface/state/admin-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_AdminStatus)(0)), + }, + "/interfaces/interface/subinterfaces/subinterface/state/oper-status": []reflect.Type{ + reflect.TypeOf((E_OpenconfigInterfaces_Interfaces_Interface_State_OperStatus)(0)), + }, + "/lldp/config/chassis-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_ChassisIdType)(0)), + }, + "/lldp/config/suppress-tlv-advertisement": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_TLV)(0)), + }, + "/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/name": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY)(0)), + }, + "/lldp/interfaces/interface/neighbors/neighbor/capabilities/capability/state/name": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_SYSTEM_CAPABILITY)(0)), + }, + "/lldp/interfaces/interface/neighbors/neighbor/state/chassis-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_ChassisIdType)(0)), + }, + "/lldp/interfaces/interface/neighbors/neighbor/state/port-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_PortIdType)(0)), + }, + "/lldp/state/chassis-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_ChassisIdType)(0)), + }, + "/lldp/state/suppress-tlv-advertisement": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldpTypes_LLDP_TLV)(0)), + }, + "/terminal-device/logical-channels/channel/config/admin-state": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_AdminStateType)(0)), + }, + "/terminal-device/logical-channels/channel/config/logical-channel-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE)(0)), + }, + "/terminal-device/logical-channels/channel/config/loopback-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_LoopbackModeType)(0)), + }, + "/terminal-device/logical-channels/channel/config/rate-class": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE)(0)), + }, + "/terminal-device/logical-channels/channel/config/trib-protocol": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE)(0)), + }, + "/terminal-device/logical-channels/channel/ethernet/config/client-als": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls)(0)), + }, + "/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state/chassis-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_ChassisIdType)(0)), + }, + "/terminal-device/logical-channels/channel/ethernet/lldp/neighbors/neighbor/state/port-id-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigLldp_PortIdType)(0)), + }, + "/terminal-device/logical-channels/channel/ethernet/state/client-als": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_Ethernet_Config_ClientAls)(0)), + }, + "/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config/assignment-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType)(0)), + }, + "/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/config/mapping": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL)(0)), + }, + "/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state/assignment-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_LogicalChannelAssignments_Assignment_Config_AssignmentType)(0)), + }, + "/terminal-device/logical-channels/channel/logical-channel-assignments/assignment/state/mapping": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_FRAME_MAPPING_PROTOCOL)(0)), + }, + "/terminal-device/logical-channels/channel/otn/config/tributary-slot-granularity": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY)(0)), + }, + "/terminal-device/logical-channels/channel/otn/state/tributary-slot-granularity": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_SLOT_GRANULARITY)(0)), + }, + "/terminal-device/logical-channels/channel/state/admin-state": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_AdminStateType)(0)), + }, + "/terminal-device/logical-channels/channel/state/link-state": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_TerminalDevice_LogicalChannels_Channel_State_LinkState)(0)), + }, + "/terminal-device/logical-channels/channel/state/logical-channel-type": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_LOGICAL_ELEMENT_PROTOCOL_TYPE)(0)), + }, + "/terminal-device/logical-channels/channel/state/loopback-mode": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTerminalDevice_LoopbackModeType)(0)), + }, + "/terminal-device/logical-channels/channel/state/rate-class": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_RATE_CLASS_TYPE)(0)), + }, + "/terminal-device/logical-channels/channel/state/trib-protocol": []reflect.Type{ + reflect.TypeOf((E_OpenconfigTransportTypes_TRIBUTARY_PROTOCOL_TYPE)(0)), + }, +} + diff --git a/hackfest/openconfig/openconfig-terminal-device.png b/hackfest/openconfig/openconfig-terminal-device.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed8c7ea9906a8526244c12130db7b23a71e6fb0 Binary files /dev/null and b/hackfest/openconfig/openconfig-terminal-device.png differ diff --git a/hackfest/openconfig/openconfig-terminal-device.tree b/hackfest/openconfig/openconfig-terminal-device.tree new file mode 100644 index 0000000000000000000000000000000000000000..03da8a72e224eb752fea330b5c65321bad1d91d5 --- /dev/null +++ b/hackfest/openconfig/openconfig-terminal-device.tree @@ -0,0 +1,258 @@ +module: openconfig-terminal-device + +--rw terminal-device + +--rw config + +--ro state + +--rw logical-channels + | +--rw channel* [index] + | +--rw index -> ../config/index + | +--rw config + | | +--rw index? uint32 + | | +--rw description? string + | | +--rw admin-state? oc-opt-types:admin-state-type + | | +--rw rate-class? identityref + | | +--rw trib-protocol? identityref + | | +--rw logical-channel-type? identityref + | | +--rw loopback-mode? oc-opt-types:loopback-mode-type + | | +--rw test-signal? boolean + | +--ro state + | | +--ro index? uint32 + | | +--ro description? string + | | +--ro admin-state? oc-opt-types:admin-state-type + | | +--ro rate-class? identityref + | | +--ro trib-protocol? identityref + | | +--ro logical-channel-type? identityref + | | +--ro loopback-mode? oc-opt-types:loopback-mode-type + | | +--ro test-signal? boolean + | | +--ro link-state? enumeration + | +--rw otn + | | +--rw config + | | | +--rw tti-msg-transmit? string + | | | +--rw tti-msg-expected? string + | | | +--rw tti-msg-auto? boolean + | | | +--rw tributary-slot-granularity? identityref + | | +--ro state + | | +--ro tti-msg-transmit? string + | | +--ro tti-msg-expected? string + | | +--ro tti-msg-auto? boolean + | | +--ro tributary-slot-granularity? identityref + | | +--ro tti-msg-recv? string + | | +--ro rdi-msg? string + | | +--ro errored-seconds? yang:counter64 + | | +--ro severely-errored-seconds? yang:counter64 + | | +--ro unavailable-seconds? yang:counter64 + | | +--ro code-violations? yang:counter64 + | | +--ro errored-blocks? yang:counter64 + | | +--ro fec-uncorrectable-blocks? yang:counter64 + | | +--ro fec-uncorrectable-words? yang:counter64 + | | +--ro fec-corrected-bytes? yang:counter64 + | | +--ro fec-corrected-bits? yang:counter64 + | | +--ro background-block-errors? yang:counter64 + | | +--ro pre-fec-ber + | | | +--ro instant? decimal64 + | | | +--ro avg? decimal64 + | | | +--ro min? decimal64 + | | | +--ro max? decimal64 + | | | +--ro interval? oc-types:stat-interval + | | | +--ro min-time? oc-types:timeticks64 + | | | +--ro max-time? oc-types:timeticks64 + | | +--ro post-fec-ber + | | | +--ro instant? decimal64 + | | | +--ro avg? decimal64 + | | | +--ro min? decimal64 + | | | +--ro max? decimal64 + | | | +--ro interval? oc-types:stat-interval + | | | +--ro min-time? oc-types:timeticks64 + | | | +--ro max-time? oc-types:timeticks64 + | | +--ro q-value + | | | +--ro instant? decimal64 + | | | +--ro avg? decimal64 + | | | +--ro min? decimal64 + | | | +--ro max? decimal64 + | | | +--ro interval? oc-types:stat-interval + | | | +--ro min-time? oc-types:timeticks64 + | | | +--ro max-time? oc-types:timeticks64 + | | +--ro esnr + | | +--ro instant? decimal64 + | | +--ro avg? decimal64 + | | +--ro min? decimal64 + | | +--ro max? decimal64 + | | +--ro interval? oc-types:stat-interval + | | +--ro min-time? oc-types:timeticks64 + | | +--ro max-time? oc-types:timeticks64 + | +--rw ethernet + | | +--rw config + | | | +--rw client-als? enumeration + | | | +--rw als-delay? uint32 + | | +--ro state + | | | +--ro client-als? enumeration + | | | +--ro als-delay? uint32 + | | | +--ro in-mac-control-frames? oc-yang:counter64 + | | | +--ro in-mac-pause-frames? oc-yang:counter64 + | | | +--ro in-oversize-frames? oc-yang:counter64 + | | | +--ro in-undersize-frames? oc-yang:counter64 + | | | +--ro in-jabber-frames? oc-yang:counter64 + | | | +--ro in-fragment-frames? oc-yang:counter64 + | | | +--ro in-8021q-frames? oc-yang:counter64 + | | | +--ro in-crc-errors? oc-yang:counter64 + | | | +--ro in-block-errors? oc-yang:counter64 + | | | +--ro out-mac-control-frames? oc-yang:counter64 + | | | +--ro out-mac-pause-frames? oc-yang:counter64 + | | | +--ro out-8021q-frames? oc-yang:counter64 + | | | +--ro in-pcs-bip-errors? oc-yang:counter64 + | | | +--ro in-pcs-errored-seconds? oc-yang:counter64 + | | | +--ro in-pcs-severely-errored-seconds? oc-yang:counter64 + | | | +--ro in-pcs-unavailable-seconds? oc-yang:counter64 + | | | +--ro out-pcs-bip-errors? oc-yang:counter64 + | | | +--ro out-crc-errors? oc-yang:counter64 + | | | +--ro out-block-errors? oc-yang:counter64 + | | +--rw lldp + | | +--rw config + | | | +--rw enabled? boolean + | | | +--rw snooping? boolean + | | +--ro state + | | | +--ro enabled? boolean + | | | +--ro snooping? boolean + | | | +--ro counters + | | | +--ro frame-in? yang:counter64 + | | | +--ro frame-out? yang:counter64 + | | | +--ro frame-error-in? yang:counter64 + | | | +--ro frame-discard? yang:counter64 + | | | +--ro tlv-discard? yang:counter64 + | | | +--ro tlv-unknown? yang:counter64 + | | | +--ro last-clear? yang:date-and-time + | | | +--ro frame-error-out? yang:counter64 + | | +--ro neighbors + | | +--ro neighbor* [id] + | | +--ro id -> ../state/id + | | +--ro config + | | +--ro state + | | | +--ro system-name? string + | | | +--ro system-description? string + | | | +--ro chassis-id? string + | | | +--ro chassis-id-type? oc-lldp-types:chassis-id-type + | | | +--ro id? string + | | | +--ro age? uint64 + | | | +--ro last-update? int64 + | | | +--ro ttl? uint16 + | | | +--ro port-id? string + | | | +--ro port-id-type? oc-lldp-types:port-id-type + | | | +--ro port-description? string + | | | +--ro management-address? string + | | | +--ro management-address-type? string + | | +--ro custom-tlvs + | | +--ro tlv* [type oui oui-subtype] + | | +--ro type -> ../state/type + | | +--ro oui -> ../state/oui + | | +--ro oui-subtype -> ../state/oui-subtype + | | +--ro config + | | +--ro state + | | +--ro type? int32 + | | +--ro oui? string + | | +--ro oui-subtype? string + | | +--ro value? binary + | +--rw ingress + | | +--rw config + | | | +--rw transceiver? -> /oc-platform:components/component/name + | | | +--rw physical-channel* -> /oc-platform:components/component/oc-transceiver:transceiver/physical-channels/channel/index + | | +--ro state + | | +--ro transceiver? -> /oc-platform:components/component/name + | | +--ro physical-channel* -> /oc-platform:components/component/oc-transceiver:transceiver/physical-channels/channel/index + | +--rw logical-channel-assignments + | +--rw assignment* [index] + | +--rw index -> ../config/index + | +--rw config + | | +--rw index? uint32 + | | +--rw description? string + | | +--rw assignment-type? enumeration + | | +--rw logical-channel? -> /terminal-device/logical-channels/channel/index + | | +--rw optical-channel? -> /oc-platform:components/component/name + | | +--rw allocation? decimal64 + | | +--rw tributary-slot-index? int32 + | | +--rw mapping? identityref + | +--ro state + | +--ro index? uint32 + | +--ro description? string + | +--ro assignment-type? enumeration + | +--ro logical-channel? -> /terminal-device/logical-channels/channel/index + | +--ro optical-channel? -> /oc-platform:components/component/name + | +--ro allocation? decimal64 + | +--ro tributary-slot-index? int32 + | +--ro mapping? identityref + +--rw operational-modes + +--ro mode* [mode-id] + +--ro mode-id -> ../state/mode-id + +--ro config + +--ro state + +--ro mode-id? uint16 + +--ro description? string + +--ro vendor-id? string + + augment /oc-platform:components/oc-platform:component: + +--rw optical-channel + +--rw config + | +--rw frequency? oc-opt-types:frequency-type + | +--rw target-output-power? decimal64 + | +--rw operational-mode? uint16 + | +--rw line-port? -> /oc-platform:components/component/name + +--ro state + +--ro frequency? oc-opt-types:frequency-type + +--ro target-output-power? decimal64 + +--ro operational-mode? uint16 + +--ro line-port? -> /oc-platform:components/component/name + +--ro group-id? uint32 + +--ro output-power + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro input-power + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro laser-bias-current + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro chromatic-dispersion + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro polarization-mode-dispersion + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro second-order-polarization-mode-dispersion + | +--ro instant? decimal64 + | +--ro avg? decimal64 + | +--ro min? decimal64 + | +--ro max? decimal64 + | +--ro interval? oc-types:stat-interval + | +--ro min-time? oc-types:timeticks64 + | +--ro max-time? oc-types:timeticks64 + +--ro polarization-dependent-loss + +--ro instant? decimal64 + +--ro avg? decimal64 + +--ro min? decimal64 + +--ro max? decimal64 + +--ro interval? oc-types:stat-interval + +--ro min-time? oc-types:timeticks64 + +--ro max-time? oc-types:timeticks64 diff --git a/hackfest/openconfig/openconfig-terminal-device.uml b/hackfest/openconfig/openconfig-terminal-device.uml new file mode 100644 index 0000000000000000000000000000000000000000..11b945ead0abbc6fb591767ef0f41d62c641b49e --- /dev/null +++ b/hackfest/openconfig/openconfig-terminal-device.uml @@ -0,0 +1,400 @@ +'Download plantuml from http://plantuml.sourceforge.net/ +'Generate png with java -jar plantuml.jar +'Output in img/.png +'If Java spits out memory error increase heap size with java -Xmx1024m -jar plantuml.jar +@startuml img/openconfig-terminal-device.png +hide empty fields +hide empty methods +hide <> circle +hide <> circle +hide <> circle +hide <> stereotype +hide <> circle +page 1x1 +Title openconfig-terminal-device +package "oc-types:openconfig-types" as oc_types_openconfig_types { +} +package "oc-opt-types:openconfig-transport-types" as oc_opt_types_openconfig_transport_types { +} +package "oc-eth:openconfig-if-ethernet" as oc_eth_openconfig_if_ethernet { +} +package "oc-platform:openconfig-platform" as oc_platform_openconfig_platform { +} +package "oc-transceiver:openconfig-platform-transceiver" as oc_transceiver_openconfig_platform_transceiver { +} +package "oc-lldp:openconfig-lldp" as oc_lldp_openconfig_lldp { +} +package "oc-ext:openconfig-extensions" as oc_ext_openconfig_extensions { +} +package "yang:ietf-yang-types" as yang_ietf_yang_types { +} +package "oc-yang:openconfig-yang-types" as oc_yang_openconfig_yang_types { +} +note top of oc_opt_term_openconfig_terminal_device : Namespace: http://openconfig.net/yang/terminal-device \nPrefix: oc-opt-term \nOrganization : \nOpenConfig working group \nContact : \nOpenConfig working group \nwww.openconfig.net \nRevision : 2019-11-28 \n +package "oc-opt-term:openconfig-terminal-device" as oc_opt_term_openconfig_terminal_device { +oc_types_openconfig_types +-- oc_opt_term_openconfig_terminal_device +oc_opt_types_openconfig_transport_types +-- oc_opt_term_openconfig_terminal_device +oc_eth_openconfig_if_ethernet +-- oc_opt_term_openconfig_terminal_device +oc_platform_openconfig_platform +-- oc_opt_term_openconfig_terminal_device +oc_transceiver_openconfig_platform_transceiver +-- oc_opt_term_openconfig_terminal_device +oc_lldp_openconfig_lldp +-- oc_opt_term_openconfig_terminal_device +oc_ext_openconfig_extensions +-- oc_opt_term_openconfig_terminal_device +yang_ietf_yang_types +-- oc_opt_term_openconfig_terminal_device +oc_yang_openconfig_yang_types +-- oc_opt_term_openconfig_terminal_device +class "openconfig-terminal-device" as openconfig_terminal_device << (M, #33CCFF) module>> +class "terminal-input-optical-power" as openconfig_terminal_device_I_terminal_input_optical_power_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_input_optical_power_grouping : input-power : decimal64 {dBm} +class "terminal-ethernet-protocol-config" as openconfig_terminal_device_I_terminal_ethernet_protocol_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_ethernet_protocol_config_grouping : client-als : enumeration : {NONE,LASER_SHUTDOWN,ETHERNET,} = ETHERNET +openconfig_terminal_device_I_terminal_ethernet_protocol_config_grouping : als-delay : uint32 = 0 {milliseconds} +class "terminal-ethernet-protocol-state" as openconfig_terminal_device_I_terminal_ethernet_protocol_state_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_ethernet_protocol_state_grouping : oc-eth:ethernet-interface-state-counters {uses} +openconfig_terminal_device_I_terminal_ethernet_protocol_state_grouping : terminal-ethernet-protocol-state-counters {uses} +class "terminal-ethernet-protocol-state-counters" as openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : in-pcs-bip-errors : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : in-pcs-errored-seconds : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : in-pcs-severely-errored-seconds : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : in-pcs-unavailable-seconds : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : out-pcs-bip-errors : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : out-crc-errors : oc-yang:counter64 +openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : out-block-errors : oc-yang:counter64 +class "terminal-ethernet-protocol-top" as openconfig_terminal_device_I_terminal_ethernet_protocol_top_grouping <<(G,Lime) grouping>> +class "ethernet" as openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet <> +openconfig_terminal_device_I_terminal_ethernet_protocol_top_grouping *-- "1" openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet +class "config" as openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_config <> +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet *-- "1" openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_config +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_config : terminal-ethernet-protocol-config {uses} +class "state" as openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state <> +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet *-- "1" openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state +note bottom of openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state : terminal-ethernet-protocol-config {uses} +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state : terminal-ethernet-protocol-state {uses} +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet : lldp-logical-channel-top {uses} +class "lldp-logical-channel-top" as openconfig_terminal_device_I_lldp_logical_channel_top_grouping <<(G,Lime) grouping>> +class "lldp" as openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp <> +openconfig_terminal_device_I_lldp_logical_channel_top_grouping *-- "1" openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp +class "config" as openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_config <> +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp *-- "1" openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_config +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_config : lldp-logical-channel-config {uses} +class "state" as openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state <> +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp *-- "1" openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state +note bottom of openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state +Config = false +end note +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state : lldp-logical-channel-config {uses} +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state : oc-lldp:lldp-interface-state {uses} +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp : lldp-logical-channel-neighbor-top {uses} +class "lldp-logical-channel-config" as openconfig_terminal_device_I_lldp_logical_channel_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_lldp_logical_channel_config_grouping : enabled : boolean = false +openconfig_terminal_device_I_lldp_logical_channel_config_grouping : snooping : boolean = false +class "lldp-logical-channel-neighbor-top" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_grouping <<(G,Lime) grouping>> +class "neighbors" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors <> +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_grouping *-- "1" openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors +note bottom of openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors +Config = false +end note +class "neighbor" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor << (L, #FF7700) list>> +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors *-- "0..N" openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor : +id : leafref : ../state/id {key} +class "config" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_config <> +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor *-- "1" openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_config +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_config : lldp-logical-channel-neighbor-config {uses} +class "state" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state <> +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor *-- "1" openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state +note bottom of openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state +Config = false +end note +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state : oc-lldp:lldp-system-info-config {uses} +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state : oc-lldp:lldp-system-info-state {uses} +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state : oc-lldp:lldp-neighbor-config {uses} +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_state : oc-lldp:lldp-neighbor-state {uses} +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor : oc-lldp:lldp-custom-tlv-top {uses} +class "lldp-logical-channel-neighbor-config" as openconfig_terminal_device_I_lldp_logical_channel_neighbor_config_grouping <<(G,Lime) grouping>> +class "terminal-otn-protocol-config" as openconfig_terminal_device_I_terminal_otn_protocol_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : tti-msg-transmit : string +openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : tti-msg-expected : string +openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : tti-msg-auto : boolean +openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : tributary-slot-granularity : identityref {oc-opt-types:TRIBUTARY_SLOT_GRANULARITY} +class "terminal-otn-protocol-counter-stats" as openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : errored-seconds : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : severely-errored-seconds : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : unavailable-seconds : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : code-violations : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : errored-blocks : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : fec-uncorrectable-blocks : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : fec-uncorrectable-words : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : fec-corrected-bytes : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : fec-corrected-bits : yang:counter64 +openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : background-block-errors : yang:counter64 +class "terminal-otn-protocol-multi-stats" as openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping <<(G,Lime) grouping>> +class "pre-fec-ber" as openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_pre_fec_ber <> +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_pre_fec_ber +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_pre_fec_ber : oc-opt-types:avg-min-max-instant-stats-precision18-ber {uses} +class "post-fec-ber" as openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_post_fec_ber <> +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_post_fec_ber +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_post_fec_ber : oc-opt-types:avg-min-max-instant-stats-precision18-ber {uses} +class "q-value" as openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_q_value <> +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_q_value +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_q_value : oc-types:avg-min-max-instant-stats-precision2-dB {uses} +class "esnr" as openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_esnr <> +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_esnr +openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_I_esnr : oc-types:avg-min-max-instant-stats-precision2-dB {uses} +class "terminal-otn-protocol-state" as openconfig_terminal_device_I_terminal_otn_protocol_state_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping : tti-msg-recv : string +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping : rdi-msg : string +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping : terminal-otn-protocol-counter-stats {uses} +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping : terminal-otn-protocol-multi-stats {uses} +class "terminal-otn-protocol-top" as openconfig_terminal_device_I_terminal_otn_protocol_top_grouping <<(G,Lime) grouping>> +class "otn" as openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn <> +openconfig_terminal_device_I_terminal_otn_protocol_top_grouping *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn +class "config" as openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_config <> +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_config +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_config : terminal-otn-protocol-config {uses} +class "state" as openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state <> +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn *-- "1" openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state +note bottom of openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state : terminal-otn-protocol-config {uses} +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state : terminal-otn-protocol-state {uses} +class "terminal-client-port-assignment-config" as openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : index : uint32 +openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : description : string +openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : logical-channel : leafref : /oc-opt-term:terminal-device/oc-opt-term:logical-channels/oc-opt-term:channel/oc-opt-term:index +openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : allocation : decimal64 {Gbps} +class "terminal-client-port-assignment-state" as openconfig_terminal_device_I_terminal_client_port_assignment_state_grouping <<(G,Lime) grouping>> +class "terminal-client-port-assignment-top" as openconfig_terminal_device_I_terminal_client_port_assignment_top_grouping <<(G,Lime) grouping>> +class "logical-channel-assignments" as openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments <> +openconfig_terminal_device_I_terminal_client_port_assignment_top_grouping *-- "1" openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments +class "assignment" as openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment << (L, #FF7700) list>> +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments *-- "0..N" openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment : +index : leafref : ../config/index {key} +class "config" as openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_config <> +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment *-- "1" openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_config +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_config : terminal-client-port-assignment-config {uses} +class "state" as openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state <> +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment *-- "1" openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state +note bottom of openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state : terminal-client-port-assignment-config {uses} +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state : terminal-client-port-assignment-state {uses} +class "terminal-logical-chan-assignment-config" as openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : +index : uint32 {key} +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : description : string +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : assignment-type : enumeration : {LOGICAL_CHANNEL,OPTICAL_CHANNEL,} +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : logical-channel : leafref : /oc-opt-term:terminal-device/oc-opt-term:logical-channels/oc-opt-term:channel/oc-opt-term:index +note bottom of openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping +Must (logical-channel): +../assignment-type = 'LOGICAL_CHANNEL' + +end note +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : optical-channel : leafref : /oc-platform:components/oc-platform:component/oc-platform:name +note bottom of openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping +Must (optical-channel): +../assignment-type = 'OPTICAL_CHANNEL' + +end note +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : allocation : decimal64 {Gbps} +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : tributary-slot-index : int32 +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : mapping : identityref {oc-opt-types:FRAME_MAPPING_PROTOCOL} +class "terminal-logical-chan-assignment-state" as openconfig_terminal_device_I_terminal_logical_chan_assignment_state_grouping <<(G,Lime) grouping>> +class "terminal-logical-chan-assignment-top" as openconfig_terminal_device_I_terminal_logical_chan_assignment_top_grouping <<(G,Lime) grouping>> +class "logical-channel-assignments" as openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments <> +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_grouping *-- "1" openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments +class "assignment" as openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment << (L, #FF7700) list>> +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments *-- "0..N" openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment : +index : leafref : ../config/index {key} +class "config" as openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_config <> +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment *-- "1" openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_config +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_config : terminal-logical-chan-assignment-config {uses} +class "state" as openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state <> +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment *-- "1" openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state +note bottom of openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state : terminal-logical-chan-assignment-config {uses} +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state : terminal-logical-chan-assignment-state {uses} +class "terminal-logical-channel-ingress-config" as openconfig_terminal_device_I_terminal_logical_channel_ingress_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_logical_channel_ingress_config_grouping : transceiver : leafref : /oc-platform:components/oc-platform:component/oc-platform:name +openconfig_terminal_device_I_terminal_logical_channel_ingress_config_grouping : physical-channel []: leafref : /oc-platform:components/oc-platform:component/oc-transceiver:transceiver/oc-transceiver:physical-channels/oc-transceiver:channel/oc-transceiver:index +class "terminal-logical-channel-ingress-state" as openconfig_terminal_device_I_terminal_logical_channel_ingress_state_grouping <<(G,Lime) grouping>> +class "terminal-logical-channel-ingress-top" as openconfig_terminal_device_I_terminal_logical_channel_ingress_top_grouping <<(G,Lime) grouping>> +class "ingress" as openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress <> +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_grouping *-- "1" openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress +class "config" as openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_config <> +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress *-- "1" openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_config +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_config : terminal-logical-channel-ingress-config {uses} +class "state" as openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state <> +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress *-- "1" openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state +note bottom of openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state : terminal-logical-channel-ingress-config {uses} +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state : terminal-logical-channel-ingress-state {uses} +class "terminal-logical-channel-config" as openconfig_terminal_device_I_terminal_logical_channel_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : +index : uint32 {key} +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : description : string +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : admin-state : oc-opt-types:admin-state-type +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : rate-class : identityref {oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE} +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : trib-protocol : identityref {oc-opt-types:TRIBUTARY_PROTOCOL_TYPE} +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : logical-channel-type : identityref {oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE} +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : loopback-mode : oc-opt-types:loopback-mode-type +openconfig_terminal_device_I_terminal_logical_channel_config_grouping : test-signal : boolean +class "terminal-logical-channel-state" as openconfig_terminal_device_I_terminal_logical_channel_state_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_logical_channel_state_grouping : link-state : enumeration : {UP,DOWN,TESTING,} +class "terminal-logical-channel-top" as openconfig_terminal_device_I_terminal_logical_channel_top_grouping <<(G,Lime) grouping>> +class "logical-channels" as openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels <> +openconfig_terminal_device_I_terminal_logical_channel_top_grouping *-- "1" openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels +class "channel" as openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel << (L, #FF7700) list>> +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels *-- "0..N" openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel : +index : leafref : ../config/index {key} +class "config" as openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_config <> +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel *-- "1" openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_config +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_config : terminal-logical-channel-config {uses} +class "state" as openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state <> +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel *-- "1" openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state +note bottom of openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state : terminal-logical-channel-config {uses} +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state : terminal-logical-channel-state {uses} +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel : terminal-otn-protocol-top {uses} +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel : terminal-ethernet-protocol-top {uses} +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel : terminal-logical-channel-ingress-top {uses} +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel : terminal-logical-chan-assignment-top {uses} +class "terminal-optical-channel-config" as openconfig_terminal_device_I_terminal_optical_channel_config_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_optical_channel_config_grouping : frequency : oc-opt-types:frequency-type +openconfig_terminal_device_I_terminal_optical_channel_config_grouping : target-output-power : decimal64 {dBm} +openconfig_terminal_device_I_terminal_optical_channel_config_grouping : operational-mode : uint16 +openconfig_terminal_device_I_terminal_optical_channel_config_grouping : line-port : leafref : /oc-platform:components/oc-platform:component/oc-platform:name +class "terminal-optical-channel-state" as openconfig_terminal_device_I_terminal_optical_channel_state_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_optical_channel_state_grouping : group-id : uint32 +openconfig_terminal_device_I_terminal_optical_channel_state_grouping : oc-transceiver:optical-power-state {uses} +class "chromatic-dispersion" as openconfig_terminal_device_I_terminal_optical_channel_state_I_chromatic_dispersion <> +openconfig_terminal_device_I_terminal_optical_channel_state_grouping *-- "1" openconfig_terminal_device_I_terminal_optical_channel_state_I_chromatic_dispersion +openconfig_terminal_device_I_terminal_optical_channel_state_I_chromatic_dispersion : oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm {uses} +class "polarization-mode-dispersion" as openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_mode_dispersion <> +openconfig_terminal_device_I_terminal_optical_channel_state_grouping *-- "1" openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_mode_dispersion +openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_mode_dispersion : oc-opt-types:avg-min-max-instant-stats-precision2-ps {uses} +class "second-order-polarization-mode-dispersion" as openconfig_terminal_device_I_terminal_optical_channel_state_I_second_order_polarization_mode_dispersion <> +openconfig_terminal_device_I_terminal_optical_channel_state_grouping *-- "1" openconfig_terminal_device_I_terminal_optical_channel_state_I_second_order_polarization_mode_dispersion +openconfig_terminal_device_I_terminal_optical_channel_state_I_second_order_polarization_mode_dispersion : oc-opt-types:avg-min-max-instant-stats-precision2-ps2 {uses} +class "polarization-dependent-loss" as openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_dependent_loss <> +openconfig_terminal_device_I_terminal_optical_channel_state_grouping *-- "1" openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_dependent_loss +openconfig_terminal_device_I_terminal_optical_channel_state_I_polarization_dependent_loss : oc-types:avg-min-max-instant-stats-precision2-dB {uses} +class "terminal-optical-channel-top" as openconfig_terminal_device_I_terminal_optical_channel_top_grouping <<(G,Lime) grouping>> +class "optical-channel" as openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel <> +openconfig_terminal_device_I_terminal_optical_channel_top_grouping *-- "1" openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel +class "config" as openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_config <> +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel *-- "1" openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_config +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_config : terminal-optical-channel-config {uses} +class "state" as openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state <> +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel *-- "1" openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state +note bottom of openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state : terminal-optical-channel-config {uses} +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state : terminal-optical-channel-state {uses} +class "terminal-operational-mode-config" as openconfig_terminal_device_I_terminal_operational_mode_config_grouping <<(G,Lime) grouping>> +class "terminal-operational-mode-state" as openconfig_terminal_device_I_terminal_operational_mode_state_grouping <<(G,Lime) grouping>> +openconfig_terminal_device_I_terminal_operational_mode_state_grouping : mode-id : uint16 +openconfig_terminal_device_I_terminal_operational_mode_state_grouping : description : string +openconfig_terminal_device_I_terminal_operational_mode_state_grouping : vendor-id : string +class "terminal-operational-mode-top" as openconfig_terminal_device_I_terminal_operational_mode_top_grouping <<(G,Lime) grouping>> +class "operational-modes" as openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes <> +openconfig_terminal_device_I_terminal_operational_mode_top_grouping *-- "1" openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes +class "mode" as openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode << (L, #FF7700) list>> +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes *-- "0..N" openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode +note bottom of openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode +Config = false +end note +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode : +mode-id : leafref : ../state/mode-id {key} +class "config" as openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_config <> +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode *-- "1" openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_config +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_config : terminal-operational-mode-config {uses} +class "state" as openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state <> +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode *-- "1" openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state +note bottom of openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state : terminal-operational-mode-config {uses} +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state : terminal-operational-mode-state {uses} +class "terminal-device-config" as openconfig_terminal_device_I_terminal_device_config_grouping <<(G,Lime) grouping>> +class "terminal-device-state" as openconfig_terminal_device_I_terminal_device_state_grouping <<(G,Lime) grouping>> +class "terminal-device-top" as openconfig_terminal_device_I_terminal_device_top_grouping <<(G,Lime) grouping>> +class "terminal-device" as openconfig_terminal_device_I_terminal_device_top_I_terminal_device <> +openconfig_terminal_device_I_terminal_device_top_grouping *-- "1" openconfig_terminal_device_I_terminal_device_top_I_terminal_device +class "config" as openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_config <> +openconfig_terminal_device_I_terminal_device_top_I_terminal_device *-- "1" openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_config +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_config : terminal-device-config {uses} +class "state" as openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state <> +openconfig_terminal_device_I_terminal_device_top_I_terminal_device *-- "1" openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state +note bottom of openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state +Config = false +end note +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state : terminal-device-config {uses} +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state : terminal-device-state {uses} +openconfig_terminal_device_I_terminal_device_top_I_terminal_device : terminal-logical-channel-top {uses} +openconfig_terminal_device_I_terminal_device_top_I_terminal_device : terminal-operational-mode-top {uses} +class "/oc-platform:components/oc-platform:component" as oc_platform_components_oc_platform_component << (A,CadetBlue) augment>> +openconfig_terminal_device *-- oc_platform_components_oc_platform_component +note bottom of oc_platform_components_oc_platform_component +When: /oc-platform:components/oc-platform:component/oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL' +end note +oc_platform_components_oc_platform_component : terminal-optical-channel-top {uses} +openconfig_terminal_device_I_terminal_otn_protocol_config_grouping-->oc_opt_types_TRIBUTARY_SLOT_GRANULARITY: tributary-slot-granularity +openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping-->oc_opt_types_FRAME_MAPPING_PROTOCOL: mapping +openconfig_terminal_device_I_terminal_logical_channel_config_grouping-->oc_opt_types_TRIBUTARY_RATE_CLASS_TYPE: rate-class +openconfig_terminal_device_I_terminal_logical_channel_config_grouping-->oc_opt_types_TRIBUTARY_PROTOCOL_TYPE: trib-protocol +openconfig_terminal_device_I_terminal_logical_channel_config_grouping-->oc_opt_types_LOGICAL_ELEMENT_PROTOCOL_TYPE: logical-channel-type +} + +openconfig_terminal_device_I_terminal_ethernet_protocol_state_grouping --> openconfig_terminal_device_I_terminal_ethernet_protocol_state_counters_grouping : uses +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_config --> openconfig_terminal_device_I_terminal_ethernet_protocol_config_grouping : uses +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state --> openconfig_terminal_device_I_terminal_ethernet_protocol_config_grouping : uses +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet_I_state --> openconfig_terminal_device_I_terminal_ethernet_protocol_state_grouping : uses +openconfig_terminal_device_I_terminal_ethernet_protocol_top_I_ethernet --> openconfig_terminal_device_I_lldp_logical_channel_top_grouping : uses +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_config --> openconfig_terminal_device_I_lldp_logical_channel_config_grouping : uses +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp_I_state --> openconfig_terminal_device_I_lldp_logical_channel_config_grouping : uses +openconfig_terminal_device_I_lldp_logical_channel_top_I_lldp --> openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_grouping : uses +openconfig_terminal_device_I_lldp_logical_channel_neighbor_top_I_neighbors_I_neighbor_I_config --> openconfig_terminal_device_I_lldp_logical_channel_neighbor_config_grouping : uses +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping --> openconfig_terminal_device_I_terminal_otn_protocol_counter_stats_grouping : uses +openconfig_terminal_device_I_terminal_otn_protocol_state_grouping --> openconfig_terminal_device_I_terminal_otn_protocol_multi_stats_grouping : uses +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_config --> openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : uses +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state --> openconfig_terminal_device_I_terminal_otn_protocol_config_grouping : uses +openconfig_terminal_device_I_terminal_otn_protocol_top_I_otn_I_state --> openconfig_terminal_device_I_terminal_otn_protocol_state_grouping : uses +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_config --> openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : uses +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state --> openconfig_terminal_device_I_terminal_client_port_assignment_config_grouping : uses +openconfig_terminal_device_I_terminal_client_port_assignment_top_I_logical_channel_assignments_I_assignment_I_state --> openconfig_terminal_device_I_terminal_client_port_assignment_state_grouping : uses +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_config --> openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state --> openconfig_terminal_device_I_terminal_logical_chan_assignment_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_chan_assignment_top_I_logical_channel_assignments_I_assignment_I_state --> openconfig_terminal_device_I_terminal_logical_chan_assignment_state_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_config --> openconfig_terminal_device_I_terminal_logical_channel_ingress_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state --> openconfig_terminal_device_I_terminal_logical_channel_ingress_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_ingress_top_I_ingress_I_state --> openconfig_terminal_device_I_terminal_logical_channel_ingress_state_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_config --> openconfig_terminal_device_I_terminal_logical_channel_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state --> openconfig_terminal_device_I_terminal_logical_channel_config_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel_I_state --> openconfig_terminal_device_I_terminal_logical_channel_state_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel --> openconfig_terminal_device_I_terminal_otn_protocol_top_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel --> openconfig_terminal_device_I_terminal_ethernet_protocol_top_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel --> openconfig_terminal_device_I_terminal_logical_channel_ingress_top_grouping : uses +openconfig_terminal_device_I_terminal_logical_channel_top_I_logical_channels_I_channel --> openconfig_terminal_device_I_terminal_logical_chan_assignment_top_grouping : uses +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_config --> openconfig_terminal_device_I_terminal_optical_channel_config_grouping : uses +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state --> openconfig_terminal_device_I_terminal_optical_channel_config_grouping : uses +openconfig_terminal_device_I_terminal_optical_channel_top_I_optical_channel_I_state --> openconfig_terminal_device_I_terminal_optical_channel_state_grouping : uses +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_config --> openconfig_terminal_device_I_terminal_operational_mode_config_grouping : uses +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state --> openconfig_terminal_device_I_terminal_operational_mode_config_grouping : uses +openconfig_terminal_device_I_terminal_operational_mode_top_I_operational_modes_I_mode_I_state --> openconfig_terminal_device_I_terminal_operational_mode_state_grouping : uses +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_config --> openconfig_terminal_device_I_terminal_device_config_grouping : uses +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state --> openconfig_terminal_device_I_terminal_device_config_grouping : uses +openconfig_terminal_device_I_terminal_device_top_I_terminal_device_I_state --> openconfig_terminal_device_I_terminal_device_state_grouping : uses +openconfig_terminal_device_I_terminal_device_top_I_terminal_device --> openconfig_terminal_device_I_terminal_logical_channel_top_grouping : uses +openconfig_terminal_device_I_terminal_device_top_I_terminal_device --> openconfig_terminal_device_I_terminal_operational_mode_top_grouping : uses +oc_platform_components_oc_platform_component --> openconfig_terminal_device_I_terminal_optical_channel_top_grouping : uses +center footer + UML Generated : 2020-04-19 01:36 + endfooter +@enduml diff --git a/hackfest/openconfig/openconfig-terminal-device.yang b/hackfest/openconfig/openconfig-terminal-device.yang new file mode 100644 index 0000000000000000000000000000000000000000..6cd0160c6c6f7cd3e9d7bfaba33e020c3451984e --- /dev/null +++ b/hackfest/openconfig/openconfig-terminal-device.yang @@ -0,0 +1,1489 @@ +module openconfig-terminal-device { + + yang-version "1"; + + // namespace + namespace "http://openconfig.net/yang/terminal-device"; + + prefix "oc-opt-term"; + + import openconfig-types { prefix oc-types; } + import openconfig-transport-types { prefix oc-opt-types; } + import openconfig-if-ethernet { prefix oc-eth; } + import openconfig-platform { prefix oc-platform; } + import openconfig-platform-transceiver { prefix oc-transceiver; } + import openconfig-lldp { prefix oc-lldp; } + import openconfig-extensions { prefix oc-ext; } + import ietf-yang-types { prefix yang; } + import openconfig-yang-types { prefix oc-yang; } + + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module describes a terminal optics device model for + managing the terminal systems (client and line side) in a + DWDM transport network. + + Elements of the model: + + physical port: corresponds to a physical, pluggable client + port on the terminal device. Examples includes 10G, 40G, 100G + (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future. + Physical client ports will have associated operational state or + PMs. + + physical channel: a physical lane or channel in the + physical client port. Each physical client port has 1 or more + channels. An example is 100GBASE-LR4 client physical port having + 4x25G channels. Channels have their own optical PMs and can be + monitored independently within a client physical port (e.g., + channel power). Physical client channels are defined in the + model as part of a physical client port, and are modeled + primarily for reading their PMs. + + logical channel: a logical grouping of logical grooming elements + that may be assigned to subsequent grooming stages for + multiplexing / de-multiplexing, or to an optical channel for + line side transmission. The logical channels can represent, for + example, an ODU/OTU logical packing of the client + data onto the line side. Tributaries are similarly logical + groupings of demand that can be represented in this structure and + assigned to an optical channel. Note that different types of + logical channels may be present, each with their corresponding + PMs. + + optical channel: corresponds to an optical carrier and is + assigned a wavelength/frequency. Optical channels have PMs + such as power, BER, and operational mode. + + Directionality: + + To maintain simplicity in the model, the configuration is + described from client-to-line direction. The assumption is that + equivalent reverse configuration is implicit, resulting in + the same line-to-client configuration. + + Physical layout: + + The model does not assume a particular physical layout of client + and line ports on the terminal device (e.g., such as number of + ports per linecard, separate linecards for client and line ports, + etc.)."; + + oc-ext:openconfig-version "1.7.2"; + + revision "2019-11-28" { + description + "Additional xpath fixes in when statement"; + reference "1.7.2"; + } + + revision "2019-10-12" { + description + "Fix when statement paths"; + reference "1.7.1"; + } + + revision "2019-08-08" { + description + "Add ALS config to logical-channel/ethernet/config and remove + legacy interfaces augment for this config. Client FEC was + previosuly migrated to the components model and should not + be here anymore."; + reference "1.7.0"; + } + + revision "2019-07-26" { + description + "Add support for LLDP natively on logical-channels."; + reference "1.6.0"; + } + + revision "2018-11-21" { + description + "Add OpenConfig module metadata extensions."; + reference "1.5.1"; + } + + revision "2018-10-23" { + description + "Adds support of logical-channel tributary slot allocation to + logical-channel-assignments with different channel speeds. + Enables logical channel mapping procedure specification."; + reference "1.5.0"; + } + + revision "2018-08-28" { + description + "Adds terminal device related Ethernet counters"; + reference "1.4.0"; + } + + revision "2018-07-30" { + description + "Adds lldp snooping config leaf and augmented it to oc-lldp"; + reference "1.3.0"; + } + + revision "2018-07-26" { + description + "Adds OTN protocol counter stats of errored-blocks and + fec-uncorrectable-blocks, adds ethernet-config-ext grouping + and uses it to augment oc-eth"; + reference "1.2.0"; + } + + revision "2018-07-17" { + description + "Adds testing enum to link-state"; + reference "1.1.0"; + } + + revision "2017-07-08" { + description + "Adds test-signal"; + reference "1.0.0"; + } + + revision "2016-12-22" { + description + "Fixes and additions to terminal optics model"; + reference "0.4.0"; + } + + // OpenConfig specific extensions for module metadata. + oc-ext:regexp-posix; + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + grouping terminal-input-optical-power { + description + "Reusable leaves related to input optical power"; + + leaf input-power { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The input optical power of this port in units of 0.01dBm. + If the port is an aggregate of multiple physical channels, + this attribute is the total power or sum of all channels."; + } + } + + grouping terminal-ethernet-protocol-config { + description + "Configuration data for logical channels with Ethernet + framing"; + + leaf client-als { + type enumeration { + enum NONE { + description + "The client port will do nothing when a failure is + detected on the line port or the remote client port"; + } + enum LASER_SHUTDOWN { + description + "The client port will shut down the laser to notify the + subtending Ethernet equipment of the failure detected on + the line port or the remote client port."; + } + enum ETHERNET { + description + "The client port will propagate the local fault or remote + fault signal to the subtending Ethernet equipment."; + } + } + default ETHERNET; + description + "Sets the client port behavior that defines if the actions + of automatic laser shutdown (als), ethernet fault + propagation, or nothing will be done upon the detection + of a failure on the line port or the upstream remote + client port."; + } + + leaf als-delay { + type uint32; + units milliseconds; + default 0; + description + "The timer to delay the client-als actions on the client + port when a local or remote fault is detected on the line + port. The delay will only be valid when the client-als is + set to LASER_SHUTDOWN"; + } + } + + grouping terminal-ethernet-protocol-state { + description + "Ethernet-specific counters when logical channel + is using Ethernet protocol framing, e.g., 10GE, 100GE"; + + uses oc-eth:ethernet-interface-state-counters; + uses terminal-ethernet-protocol-state-counters; + } + + grouping terminal-ethernet-protocol-state-counters { + description + "Ethernet-specific counters for terminal devices when + logical channel is using Ethernet protocol framing, + e.g., 10GE, 100GE"; + + // ingress counters + + leaf in-pcs-bip-errors { + type oc-yang:counter64; + description + "The number of received bit interleaved parity (BIP) errors + at the physical coding sublayer (PCS). If the interface + consists of multiple lanes, this will be the sum of all + errors on the lane"; + } + + leaf in-pcs-errored-seconds { + type oc-yang:counter64; + description + "The number of seconds that physical coding sublayer (PCS) + errors have crossed a sytem defined threshold indicating the + link is erroring"; + } + + leaf in-pcs-severely-errored-seconds { + type oc-yang:counter64; + description + "The number of seconds that physical coding sublayer (PCS) + errors have crossed a system defined threshold indicating the + link is severely erroring"; + } + + leaf in-pcs-unavailable-seconds { + type oc-yang:counter64; + description + "The number of seconds that physical coding sublayer (PCS) + errors have crossed a system defined threshold indicating the + link is unavailable"; + } + + // egress counters + + leaf out-pcs-bip-errors { + type oc-yang:counter64; + description + "The number of transmitted bit interleaved parity (BIP) errors + at the physical coding sublayer (PCS). If the interface + consists of multiple lanes, this will be the sum of all + errors on the lane"; + } + + leaf out-crc-errors { + type oc-yang:counter64; + description + "Number of FCS/CRC error check failures sent on the interface"; + } + + leaf out-block-errors { + type oc-yang:counter64; + description + "The number of transmitted errored blocks. Error detection + codes are capable of detecting whether one or more errors have + occurred in a given sequence of bits – the block. It is + normally not possible to determine the exact number of errored + bits within the block"; + } + } + + grouping terminal-ethernet-protocol-top { + description + "Top-level grouping for data related to Ethernet protocol + framing on logical channels"; + + container ethernet { + description + "Top level container for data related to Ethernet framing + for the logical channel"; + + container config { + description + "Configuration data for Ethernet protocol framing on + logical channels"; + + uses terminal-ethernet-protocol-config; + } + + container state { + config false; + description + "Operational state data for Ethernet protocol framing + on logical channels"; + + uses terminal-ethernet-protocol-config; + uses terminal-ethernet-protocol-state; + } + + uses lldp-logical-channel-top; + } + } + + grouping lldp-logical-channel-top { + description + "Top-level grouping for LLDP data for a logical channel"; + + container lldp { + description + "LLDP data for logical channels"; + + container config { + description + "LLDP configuration data for logical channels"; + + uses lldp-logical-channel-config; + } + + container state { + config false; + description + "LLDP operational state data for logical channels"; + + uses lldp-logical-channel-config; + uses oc-lldp:lldp-interface-state; + } + + uses lldp-logical-channel-neighbor-top; + } + } + + grouping lldp-logical-channel-config { + description + "Configuration data for LLDP for logical-channels"; + + leaf enabled { + type boolean; + default "false"; + description + "Enable or disable the LLDP protocol on the logical channel."; + } + + leaf snooping { + type boolean; + default "false"; + description + "If true, LLDP PDUs are only received and processed on + the logical-channel, but are not originated by the local + agent. The PDUs are not dropped by the logical channel after + processing, but relayed to the downstream link layer + neighbors. The snooping mode is valid only when LLDP is + enabled on the logical channel. The snooping mode is useful + when a logical channel does not want its link layer neighbors + to discover itself since, for example, it is a lower-layer + logical channel."; + } + } + + grouping lldp-logical-channel-neighbor-top { + description + "Top-level grouping for the LLDP neighbor list"; + + container neighbors { + config false; + description + "Enclosing container for list of LLDP neighbors on + a logical channel"; + + list neighbor { + key "id"; + description + "List of LLDP neighbors. If the implementation only + supports one neighbor, this would always be a list with + one item. If the device and neighbor supported multiple + neighbors, which can be achieved via LLDP forwarding, then + this would be supported"; + reference + "IEEE Std 802.1AB-2016, section 7.1, Destination address"; + + leaf id { + type leafref { + path "../state/id"; + } + description + "System generated identifier for the neighbor on + the logical channel."; + } + + container config { + description + "Configuration data "; + + uses lldp-logical-channel-neighbor-config; + } + + container state { + + config false; + + description + "Operational state data "; + + uses oc-lldp:lldp-system-info-config; + uses oc-lldp:lldp-system-info-state; + uses oc-lldp:lldp-neighbor-config; + uses oc-lldp:lldp-neighbor-state; + } + + uses oc-lldp:lldp-custom-tlv-top; + } + } + } + + grouping lldp-logical-channel-neighbor-config { + description + "Configuration data for LLDP neighbors"; + } + + grouping terminal-otn-protocol-config { + description + "OTU configuration when logical channel + framing is using an OTU protocol, e.g., OTU1, OTU3, etc."; + + leaf tti-msg-transmit { + type string; + description + "Trail trace identifier (TTI) message transmitted"; + } + + leaf tti-msg-expected { + type string; + description + "Trail trace identifier (TTI) message expected"; + } + + leaf tti-msg-auto { + type boolean; + description + "Trail trace identifier (TTI) transmit message automatically + created. If true, then setting a custom transmit message + would be invalid."; + } + + leaf tributary-slot-granularity { + type identityref { + base oc-opt-types:TRIBUTARY_SLOT_GRANULARITY; + } + description + "Granularity value of OPUk or OPUCn tributary slots for OTN + signal allocation. The currently defined values follow the + existing ITU-T G.709 standard, which can be extended as + needed in future."; + } + } + + grouping terminal-otn-protocol-counter-stats { + description + "Counter based statistics containers for logical channels + using OTN framing"; + + leaf errored-seconds { + type yang:counter64; + description + "The number of seconds that at least one errored blocks + occurs, at least one code violation occurs, loss of sync is + detected or loss of signal is detected"; + } + + leaf severely-errored-seconds { + type yang:counter64; + description + "The number of seconds that loss of frame is detected OR + the number of errored blocks, code violations, loss of sync + or loss of signal is detected exceeds a predefined + threshold"; + } + + leaf unavailable-seconds { + type yang:counter64; + description + "The number of seconds during which the link is unavailable"; + } + + leaf code-violations { + type yang:counter64; + description + "For ethernet or fiberchannel links, the number of 8b/10b + coding violations. For SONET/SDH, the number of BIP (bit + interleaved parity) errors"; + } + + leaf errored-blocks { + type yang:counter64; + description + "The number of errored blocks. Error detection codes are + capable to detect whether one or more errors have occurred + in a given sequence of bits – the block. It is normally not + possible to determine the exact number of errored bits within + the block."; + reference "ITU-T Rec. G.826"; + } + + leaf fec-uncorrectable-blocks { + type yang:counter64; + description + "The number of blocks that were uncorrectable by the FEC"; + } + + leaf fec-uncorrectable-words { + type yang:counter64; + description + "The number of words that were uncorrectable by the FEC"; + } + + leaf fec-corrected-bytes { + type yang:counter64; + description + "The number of bytes that were corrected by the FEC"; + } + + leaf fec-corrected-bits { + type yang:counter64; + description + "The number of bits that were corrected by the FEC"; + } + + leaf background-block-errors { + type yang:counter64; + description + "The number of background block errors"; + } + } + + grouping terminal-otn-protocol-multi-stats { + description + "Multi-value statistics containers for logical channels using + OTN framing (e.g., max, min, avg, instant)"; + + container pre-fec-ber { + description + "Bit error rate before forward error correction -- computed + value with 18 decimal precision. Note that decimal64 + supports values as small as i x 10^-18 where i is an + integer. Values smaller than this should be reported as 0 + to inidicate error free or near error free performance. + Values include the instantaneous, average, minimum, and + maximum statistics. If avg/min/max statistics are not + supported, the target is expected to just supply the + instant value"; + + uses oc-opt-types:avg-min-max-instant-stats-precision18-ber; + } + + container post-fec-ber { + description + "Bit error rate after forward error correction -- computed + value with 18 decimal precision. Note that decimal64 + supports values as small as i x 10^-18 where i is an + integer. Values smaller than this should be reported as 0 + to inidicate error free or near error free performance. + Values include the instantaneous, average, minimum, and + maximum statistics. If avg/min/max statistics are not + supported, the target is expected to just supply the + instant value"; + + uses oc-opt-types:avg-min-max-instant-stats-precision18-ber; + } + + container q-value { + description + "Quality value (factor) in dB of a channel with two + decimal precision. Values include the instantaneous, + average, minimum, and maximum statistics. If avg/min/max + statistics are not supported, the target is expected + to just supply the instant value"; + + uses oc-types:avg-min-max-instant-stats-precision2-dB; + } + + container esnr { + description + "Electrical signal to noise ratio. Baud rate + normalized signal to noise ratio based on + error vector magnitude in dB with two decimal + precision. Values include the instantaneous, average, + minimum, and maximum statistics. If avg/min/max + statistics are not supported, the target is expected + to just supply the instant value"; + + uses oc-types:avg-min-max-instant-stats-precision2-dB; + } + } + + grouping terminal-otn-protocol-state { + description + "OTU operational state when logical channel + framing is using an OTU protocol, e.g., OTU1, OTU3, etc."; + + + leaf tti-msg-recv { + type string; + description + "Trail trace identifier (TTI) message received"; + } + + leaf rdi-msg { + type string; + description + "Remote defect indication (RDI) message received"; + } + uses terminal-otn-protocol-counter-stats; + uses terminal-otn-protocol-multi-stats; + } + + grouping terminal-otn-protocol-top { + description + "Top-level grouping for data related to OTN protocol framing"; + + container otn { + description + "Top level container for OTU configuration when logical + channel framing is using an OTU protocol, e.g., OTU1, OTU3, + etc."; + + container config { + description + "Configuration data for OTN protocol framing"; + + uses terminal-otn-protocol-config; + } + + container state { + + config false; + + description + "Operational state data for OTN protocol PMs, statistics, + etc."; + + uses terminal-otn-protocol-config; + uses terminal-otn-protocol-state; + } + } + } + + grouping terminal-client-port-assignment-config { + description + "Configuration data for assigning physical client ports to + logical channels"; + + leaf index { + type uint32; + description + "Index of the client port assignment"; + } + + leaf description { + type string; + description + "Descriptive name for the client port-to-logical channel + mapping"; + } + + leaf logical-channel { + type leafref { + path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" + + "/oc-opt-term:channel/oc-opt-term:index"; + } + description + "Reference to the logical channel for this + assignment"; + } + + leaf allocation { + type decimal64 { + fraction-digits 3; + } + units Gbps; + description + "Allocation of the client physical port to the assigned + logical channel expressed in Gbps. In most cases, + the full client physical port rate is assigned to a single + logical channel."; + } + + } + + grouping terminal-client-port-assignment-state { + description + "Operational state data for assigning physical client ports + to logical channels"; + } + + grouping terminal-client-port-assignment-top { + description + "Top-level grouping for the assigment of client physical ports + to logical channels"; + //TODO: this grouping could be removed, instead reusing a common + //grouping for logical client assignment pointers + + container logical-channel-assignments { + description + "Enclosing container for client port to logical client + mappings"; + + list assignment { + key "index"; + description + "List of assignments to logical clients"; + + leaf index { + type leafref { + path "../config/index"; + } + description + "Reference to the index of this logical client + assignment"; + } + + container config { + description + "Configuration data for the logical client assignment"; + + uses terminal-client-port-assignment-config; + } + + container state { + + config false; + + description + "Operational state data for the logical client + assignment"; + + uses terminal-client-port-assignment-config; + uses terminal-client-port-assignment-state; + } + } + } + } + + + grouping terminal-logical-chan-assignment-config { + description + "Configuration data for assigning client logical channels + to line-side tributaries"; + + leaf index { + type uint32; + description + "Index of the current logical client channel to tributary + mapping"; + } + + leaf description { + type string; + description + "Name assigned to the logical client channel"; + } + + leaf assignment-type { + type enumeration { + enum LOGICAL_CHANNEL { + description + "Subsequent channel is a logical channel"; + } + enum OPTICAL_CHANNEL { + description + "Subsequent channel is a optical channel / carrier"; + } + } + description + "Each logical channel element may be assigned to subsequent + stages of logical elements to implement further grooming, or + can be assigned to a line-side optical channel for + transmission. Each assignment also has an associated + bandwidth allocation."; + } + + leaf logical-channel { + type leafref { + path "/oc-opt-term:terminal-device/" + + "oc-opt-term:logical-channels/oc-opt-term:channel/" + + "oc-opt-term:index"; + } + must "../assignment-type = 'LOGICAL_CHANNEL'" { + description + "The assignment-type must be set to LOGICAL_CHANNEL for + this leaf to be valid"; + } + description + "Reference to another stage of logical channel elements."; + } + + leaf optical-channel { + type leafref { + path "/oc-platform:components/oc-platform:component/" + + "oc-platform:name"; + } + must "../assignment-type = 'OPTICAL_CHANNEL'" { + description + "The assignment-type must be set to OPTICAL_CHANNEL for + this leaf to be valid"; + } + description + "Reference to the line-side optical channel that should + carry the current logical channel element. Use this + reference to exit the logical element stage."; + } + + leaf allocation { + type decimal64 { + fraction-digits 3; + } + units Gbps; + description + "Allocation of the logical client channel to the tributary + or sub-channel, expressed in Gbps. Please note that if the + assignment is to an OTN logical channel, the allocation must + be an integer multiplication to tributary-slot-granularity + of the OTN logical channel."; + } + + leaf tributary-slot-index { + type int32; + description + "Indicates the first tributary slot index allocated to the + client signal or logical channel in the assignment. Valid + only when the assignment is to an OTN logical channel."; + } + + leaf mapping { + type identityref { + base oc-opt-types:FRAME_MAPPING_PROTOCOL; + } + description + "Logical channel mapping procedure. Valid only when the + assignment is to an OTN logical channel."; + } + } + + grouping terminal-logical-chan-assignment-state { + description + "Operational state data for the assignment of logical client + channel to line-side tributary"; + } + + grouping terminal-logical-chan-assignment-top { + description + "Top-level grouping for the list of logical client channel-to- + tributary assignments"; + + container logical-channel-assignments { + //TODO: we need a commonly understood name for this logical + //channel structure + description + "Enclosing container for tributary assignments"; + + list assignment { + key "index"; + description + "Logical channel elements may be assigned directly to + optical channels for line-side transmission, or can be + further groomed into additional stages of logical channel + elements. The grooming can multiplex (i.e., split the + current element into multiple elements in the subsequent + stage) or de-multiplex (i.e., combine the current element + with other elements into the same element in the subsequent + stage) logical elements in each stage. + + Note that to support the ability to groom the logical + elements, the list of logical channel elements should be + populated with an entry for the logical elements at + each stage, starting with the initial assignment from the + respective client physical port. + + Each logical element assignment consists of a pointer to + an element in the next stage, or to an optical channel, + along with a bandwidth allocation for the corresponding + assignment (e.g., to split or combine signal)."; + + leaf index { + type leafref { + path "../config/index"; + } + description + "Reference to the index for the current tributary + assignment"; + } + + container config { + description + "Configuration data for tributary assignments"; + + uses terminal-logical-chan-assignment-config; + } + + container state { + + config false; + + description + "Operational state data for tributary assignments"; + + uses terminal-logical-chan-assignment-config; + uses terminal-logical-chan-assignment-state; + } + } + } + } + + grouping terminal-logical-channel-ingress-config { + description + "Configuration data for ingress signal to logical channel"; + + leaf transceiver { + type leafref { + path "/oc-platform:components/oc-platform:component/" + + "oc-platform:name"; + } + description + "Reference to the transceiver carrying the input signal + for the logical channel. If specific physical channels + are mapped to the logical channel (as opposed to all + physical channels carried by the transceiver), they can be + specified in the list of physical channel references."; + } + + leaf-list physical-channel { + type leafref { + path "/oc-platform:components/oc-platform:component/" + + "oc-transceiver:transceiver/" + + "oc-transceiver:physical-channels/" + + "oc-transceiver:channel/oc-transceiver:index"; + } + description + "This list should be populated with references + to the client physical channels that feed this logical + channel from the transceiver specified in the 'transceiver' + leaf, which must be specified. If this leaf-list is empty, + all physical channels in the transceiver are assumed to be + mapped to the logical channel."; + } + } + + grouping terminal-logical-channel-ingress-state { + description + "Operational state data for ingress signal to logical channel"; + } + + grouping terminal-logical-channel-ingress-top { + description + "Top-level grouping for ingress signal to logical channel"; + + container ingress { + description + "Top-level container for specifying references to the + source of signal for the logical channel, either a + transceiver or individual physical channels"; + + container config { + description + "Configuration data for the signal source for the + logical channel"; + + uses terminal-logical-channel-ingress-config; + } + + container state { + + config false; + + description + "Operational state data for the signal source for the + logical channel"; + + uses terminal-logical-channel-ingress-config; + uses terminal-logical-channel-ingress-state; + } + } + } + + grouping terminal-logical-channel-config { + description + "Configuration data for logical channels"; + + leaf index { + type uint32; + description + "Index of the current logical channel"; + } + + leaf description { + type string; + description + "Description of the logical channel"; + } + + leaf admin-state { + type oc-opt-types:admin-state-type; + description + "Sets the admin state of the logical channel"; + } + + leaf rate-class { + type identityref { + base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE; + } + description + "Rounded bit rate of the tributary signal. Exact bit rate + will be refined by protocol selection."; + } + + leaf trib-protocol { + type identityref { + base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE; + } + description + "Protocol framing of the tributary signal. If this + LogicalChannel is directly connected to a Client-Port or + Optical-Channel, this is the protocol of the associated port. + If the LogicalChannel is connected to other LogicalChannels, + the TributaryProtocol of the LogicalChannels will define a + specific mapping/demapping or multiplexing/demultiplexing + function. + + Not all protocols are valid, depending on the value + of trib-rate-class. The expectation is that the NMS + will validate that a correct combination of rate class + and protocol are specfied. Basic combinations are: + + rate class: 1G + protocols: 1GE + + rate class: 2.5G + protocols: OC48, STM16 + + rate class: 10G + protocols: 10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e, + OTU1e, ODU2, ODU2e, ODU1e + + rate class: 40G + protocols: 40GE, OC768, STM256, OTU3, ODU3 + + rate class: 100G + protocols: 100GE, 100G MLG, OTU4, OTUCn, ODU4"; + } + + leaf logical-channel-type { + type identityref { + base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE; + } + description + "The type / stage of the logical element determines the + configuration and operational state parameters (PMs) + available for the logical element"; + } + + leaf loopback-mode { + type oc-opt-types:loopback-mode-type; + description + "Sets the loopback type on the logical channel. Setting the + mode to something besides NONE activates the loopback in + the specified mode."; + } + + leaf test-signal { + type boolean; + description + "When enabled the logical channel's DSP will generate a pseudo + randmon bit stream (PRBS) which can be used during testing."; + } + } + + + grouping terminal-logical-channel-state { + description + "Operational state data for logical client channels"; + + leaf link-state { + type enumeration { + enum UP { + description + "Logical channel is operationally up"; + } + enum DOWN { + description + "Logical channel is operationally down"; + } + enum TESTING { + description + "Logical channel is under test as a result of + enabling test-signal"; + } + } + description + "Link-state of the Ethernet protocol on the logical channel, + SONET / SDH framed signal, etc."; + } + + } + + grouping terminal-logical-channel-top { + description + "Top-level grouping for logical channels"; + + container logical-channels { + description + "Enclosing container the list of logical channels"; + + list channel { + key "index"; + description + "List of logical channels"; + //TODO: naming for this list of logical elements should be + //revisited. + + leaf index { + type leafref { + path "../config/index"; + } + description + "Reference to the index of the logical channel"; + } + + container config { + description + "Configuration data for logical channels"; + + uses terminal-logical-channel-config; + + } + + container state { + + config false; + + description + "Operational state data for logical channels"; + + uses terminal-logical-channel-config; + uses terminal-logical-channel-state; + } + + uses terminal-otn-protocol-top { + when "./config/logical-channel-type = 'PROT_OTN'" { + description + "Include the OTN protocol data only when the + channel is using OTN framing."; + } + } + uses terminal-ethernet-protocol-top { + when "./config/logical-channel-type = 'PROT_ETHERNET'" { + description + "Include the Ethernet protocol statistics only when the + protocol used by the link is Ethernet."; + } + } + uses terminal-logical-channel-ingress-top; + uses terminal-logical-chan-assignment-top; + } + } + } + + + grouping terminal-optical-channel-config { + description + "Configuration data for describing optical channels"; + + leaf frequency { + type oc-opt-types:frequency-type; + description + "Frequency of the optical channel, expressed in MHz"; + } + + leaf target-output-power { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "Target output optical power level of the optical channel, + expressed in increments of 0.01 dBm (decibel-milliwats)"; + } + + leaf operational-mode { + type uint16; + description + "Vendor-specific mode identifier -- sets the operational + mode for the channel. The specified operational mode must + exist in the list of supported operational modes supplied + by the device"; + // + // Ideally, this leaf should be a leafref to the supported + // operational modes, but YANG 1.0 does not allow a r/w + // leaf to be a leafref to a r/o leaf. + } + + + leaf line-port { + type leafref { + path "/oc-platform:components/oc-platform:component/" + + "oc-platform:name"; + } + description + "Reference to the line-side physical port that carries + this optical channel. The target port should be + a component in the physical inventory data model."; + } + } + + grouping terminal-optical-channel-state { + description + "Operational state data for optical channels"; + + leaf group-id { + type uint32; + description + "If the device places constraints on which optical + channels must be managed together (e.g., transmitted on the + same line port), it can indicate that by setting the group-id + to the same value across related optical channels."; + } + + uses oc-transceiver:optical-power-state; + + container chromatic-dispersion { + description + "Chromatic Dispersion of an optical channel in + picoseconds / nanometer (ps/nm) as reported by receiver + with two decimal precision. Values include the instantaneous, + average, minimum, and maximum statistics. If avg/min/max + statistics are not supported, the target is expected to just + supply the instant value"; + + uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm; + } + + container polarization-mode-dispersion { + description + "Polarization Mode Dispersion of an optical channel + in picosends (ps) as reported by receiver with two decimal + precision. Values include the instantaneous, average, + minimum, and maximum statistics. If avg/min/max statistics + are not supported, the target is expected to just supply the + instant value"; + + uses oc-opt-types:avg-min-max-instant-stats-precision2-ps; + } + + container second-order-polarization-mode-dispersion { + description + "Second Order Polarization Mode Dispersion of an optical + channel in picoseconds squared (ps^2) as reported by + receiver with two decimal precision. Values include the + instantaneous, average, minimum, and maximum statistics. + If avg/min/max statistics are not supported, the target + is expected to just supply the instant value"; + + uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2; + } + + container polarization-dependent-loss { + description + "Polarization Dependent Loss of an optical channel + in dB as reported by receiver with two decimal precision. + Values include the instantaneous, average, minimum, and + maximum statistics. If avg/min/max statistics are not + supported, the target is expected to just supply the + instant value"; + + uses oc-types:avg-min-max-instant-stats-precision2-dB; + } + } + + grouping terminal-optical-channel-top { + description + "Top-level grouping for optical channel data"; + + container optical-channel { + description + "Enclosing container for the list of optical channels"; + + container config { + description + "Configuration data for optical channels"; + + uses terminal-optical-channel-config; + } + + container state { + + config false; + + description + "Operational state data for optical channels"; + + uses terminal-optical-channel-config; + uses terminal-optical-channel-state; + } + } + } + + grouping terminal-operational-mode-config { + description + "Configuration data for vendor-supported operational modes"; + } + + grouping terminal-operational-mode-state { + description + "Operational state data for vendor-supported operational + modes"; + + leaf mode-id { + type uint16; + description + "Two-octet encoding of the vendor-defined operational + mode"; + } + + leaf description { + type string; + description + "Vendor-supplied textual description of the characteristics + of this operational mode to enable operators to select the + appropriate mode for the application."; + } + + //TODO: examples of the kind of info that would be useful to + //report in the operational mode: + //Symbol rate (32G, 40G, 43G, 64G, etc.) + //Modulation (QPSK, 8-QAM, 16-QAM, etc.) + //Differential encoding (on, off/pilot symbol, etc) + //State of polarization tracking mode (default, med. + //high-speed, etc.) + //Pulse shaping (RRC, RC, roll-off factor) + //FEC mode (SD, HD, % OH) + + leaf vendor-id { + type string; + description + "Identifier to represent the vendor / supplier of the + platform and the associated operational mode information"; + } + } + + grouping terminal-operational-mode-top { + description + "Top-level grouping for vendor-supported operational modes"; + + container operational-modes { + description + "Enclosing container for list of operational modes"; + + list mode { + key "mode-id"; + config false; + description + "List of operational modes supported by the platform. + The operational mode provides a platform-defined summary + of information such as symbol rate, modulation, pulse + shaping, etc."; + + leaf mode-id { + type leafref { + path "../state/mode-id"; + } + description + "Reference to mode-id"; + } + + container config { + description + "Configuration data for operational mode"; + + uses terminal-operational-mode-config; + } + + container state { + + config false; + + description + "Operational state data for the platform-defined + operational mode"; + + uses terminal-operational-mode-config; + uses terminal-operational-mode-state; + } + } + } + } + + grouping terminal-device-config { + description + "Configuration data for transport terminal devices at a + device-wide level"; + } + + grouping terminal-device-state { + description + "Operational state data for transport terminal devices at a + device-wide level"; + } + + grouping terminal-device-top { + description + "Top-level grouping for data for terminal devices"; + + container terminal-device { + description + "Top-level container for the terminal device"; + + container config { + description + "Configuration data for global terminal-device"; + + uses terminal-device-config; + } + + container state { + + config false; + + description + "Operational state data for global terminal device"; + + uses terminal-device-config; + uses terminal-device-state; + } + + uses terminal-logical-channel-top; + uses terminal-operational-mode-top; + + } + } + + // data definition statements + + uses terminal-device-top; + + // augment statements + + augment "/oc-platform:components/oc-platform:component" { + when "/oc-platform:components/oc-platform:component/" + + "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" { + description + "Augment is active when component is of type + OPTICAL_CHANNEL"; + } + description + "Adding optical channel data to physical inventory"; + + uses terminal-optical-channel-top { + } + } +} diff --git a/hackfest/openconfig/terminal.json b/hackfest/openconfig/terminal.json new file mode 100644 index 0000000000000000000000000000000000000000..9c7164f2c1cc240544ac4ab13e532408f198cb30 --- /dev/null +++ b/hackfest/openconfig/terminal.json @@ -0,0 +1,22 @@ +{ + "terminal-device" : { + "logical-channels" : { + "channel" : [ + { + "index" : 1, + "config" : { "index" : 1 }, + "otn" : { + "state" : { + "q-value" : { + "instant" : "5" + }, + "esnr" : { + "instant" : "6" + } + } + } + } + ] + } + } +} diff --git a/hackfest/restconf/commands.txt b/hackfest/restconf/commands.txt new file mode 100644 index 0000000000000000000000000000000000000000..2eac80cf60d58675981983c722bb7d2fdcbd84bf --- /dev/null +++ b/hackfest/restconf/commands.txt @@ -0,0 +1,48 @@ +== RESTCONF + +=== YANG2SWAGGER + +$ cd ~/tfs-ctrl/hackfest/restconf +(if needed) +$ wget https://github.com/bartoszm/yang2swagger/releases/download/1.1.11/swagger-generator-cli-1.1.11-executable.jar + +Generate swagger files: +$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output topology.yaml topology +$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output connection.yaml connection + + + +=== SERVER +$ cd ~/tfs-ctrl/hackfest/restconf +(if needed) +$ wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.11/swagger-codegen-cli-3.0.11.jar -O swagger-codegen-cli.jar + +Create the server: +$ mkdir ~/tfs-ctrl/hackfest/restconf/server +$ java -jar swagger-codegen-cli.jar generate -i connection.yaml -l python-flask -o server + +Run the server: +$ cd ~/tfs-ctrl/hackfest/restconf/server +$ pip3 install -r requirements.txt +(Open ~/tfs-ctrl/hackfest/restconf/server/swagger_server/swagger/swagger.yaml and modify all: "name: connection_id" for "name: connection-id") +RUN AUTOGENERATED SERVER +$ python3 -m swagger_server + +(you have the solution in ~/tfs-ctrl/hackfest/restconf/connectionserver ) + +RUN CURL AS CLIENT (In another window) +$ cd ~/tfs-ctrl/hackfest/restconf/ +$ curl -X POST -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection/ -d@conn1.json +$ curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection=0/ +$ curl -X DELETE -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection=0/ + + +=== Exercise: RESTCONF TOPOLOGY === +$ mkdir ~/tfs-ctrl/hackfest/restconf/topologyserver +$ java -jar swagger-codegen-cli.jar generate -i topology.yaml -l python-flask -o topologyserver +$ cd ~/tfs-ctrl/hackfest/restconf/topologyserver +(Open ~/tfs-ctrl/hackfest/restconf/topologyserver/swagger_server/swagger/swagger.yaml and modify all: "name: link_id" for "name: link-id", same for node and port) +$ python3 -m swagger_server + +RUN CURL AS CLIENT (In another window) +$curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/topology/ diff --git a/hackfest/restconf/conn1.json b/hackfest/restconf/conn1.json new file mode 100644 index 0000000000000000000000000000000000000000..e541b477c2bef70d2f02ab988e2c599e20405c67 --- /dev/null +++ b/hackfest/restconf/conn1.json @@ -0,0 +1,7 @@ +{ + "source-node" : "node1", + "target-node" : "node2", + "source-port" : "node1portA", + "target-port" : "node2portA", + "bandwidth" : 10 +} \ No newline at end of file diff --git a/hackfest/restconf/connection.yaml b/hackfest/restconf/connection.yaml new file mode 100644 index 0000000000000000000000000000000000000000..abc119f26cee8be17d91cb036f5b5dcf37a8331d --- /dev/null +++ b/hackfest/restconf/connection.yaml @@ -0,0 +1,138 @@ +--- +swagger: "2.0" +info: + description: "connection API generated from yang definitions" + version: "1.0" + title: "connection API" +host: "localhost:1234" +consumes: +- "application/yang-data+json" +produces: +- "application/yang-data+json" +paths: + /data/connection/: + post: + tags: + - "connection" + description: "creates connection.Connection" + parameters: + - in: "body" + name: "connection.Connection.body-param" + description: "connection.Connection to be added to list" + required: false + schema: + $ref: "#/definitions/connection.Connection" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/connection={connection-id}/: + get: + tags: + - "connection" + description: "returns connection.Connection" + parameters: + - name: "connection-id" + in: "path" + description: "Id of connection" + required: true + type: "string" + responses: + 200: + description: "connection.Connection" + schema: + $ref: "#/definitions/connection.Connection" + 400: + description: "Internal error" + post: + tags: + - "connection" + description: "creates connection.Connection" + parameters: + - name: "connection-id" + in: "path" + description: "Id of connection" + required: true + type: "string" + - in: "body" + name: "connection.Connection.body-param" + description: "connection.Connection to be added to list" + required: false + schema: + $ref: "#/definitions/connection.Connection" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "connection" + description: "creates or updates connection.Connection" + parameters: + - name: "connection-id" + in: "path" + description: "Id of connection" + required: true + type: "string" + - in: "body" + name: "connection.Connection.body-param" + description: "connection.Connection to be added or updated" + required: false + schema: + $ref: "#/definitions/connection.Connection" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "connection" + description: "removes connection.Connection" + parameters: + - name: "connection-id" + in: "path" + description: "Id of connection" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" +definitions: + connection.Connection: + type: "object" + properties: + target-port: + type: "string" + x-path: "/topology:topology/topology:node/topology:port/topology:port-id" + source-port: + type: "string" + x-path: "/topology:topology/topology:node/topology:port/topology:port-id" + target-node: + type: "string" + x-path: "/topology:topology/topology:node/topology:node-id" + connection-id: + type: "string" + bandwidth: + type: "integer" + format: "int64" + source-node: + type: "string" + x-path: "/topology:topology/topology:node/topology:node-id" + layer-protocol-name: + $ref: "#/definitions/topology.LayerProtocolName" + topology.LayerProtocolName: + type: "string" + enum: + - "ETH" + - "OPTICAL" diff --git a/hackfest/restconf/connectionserver/.dockerignore b/hackfest/restconf/connectionserver/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..cdd823e64e7e91ae85da84f22410ecb7eb370ae2 --- /dev/null +++ b/hackfest/restconf/connectionserver/.dockerignore @@ -0,0 +1,72 @@ +.travis.yaml +.swagger-codegen-ignore +README.md +tox.ini +git_push.sh +test-requirements.txt +setup.py + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/restconf/connectionserver/.gitignore b/hackfest/restconf/connectionserver/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a655050c2631466828b5b8bfc59ae27f9ac02dc5 --- /dev/null +++ b/hackfest/restconf/connectionserver/.gitignore @@ -0,0 +1,64 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/restconf/connectionserver/.swagger-codegen-ignore b/hackfest/restconf/connectionserver/.swagger-codegen-ignore new file mode 100644 index 0000000000000000000000000000000000000000..c5fa491b4c557bf997d5dd21797de782545dc9e5 --- /dev/null +++ b/hackfest/restconf/connectionserver/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/hackfest/restconf/connectionserver/.swagger-codegen/VERSION b/hackfest/restconf/connectionserver/.swagger-codegen/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..e4a0720dd5141073dced1d64dddb6afd14bf26d3 --- /dev/null +++ b/hackfest/restconf/connectionserver/.swagger-codegen/VERSION @@ -0,0 +1 @@ +3.0.11 \ No newline at end of file diff --git a/hackfest/restconf/connectionserver/.travis.yml b/hackfest/restconf/connectionserver/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..dd6c4450aa902ae68479c3d76d45145e18d6052e --- /dev/null +++ b/hackfest/restconf/connectionserver/.travis.yml @@ -0,0 +1,13 @@ +# ref: https://docs.travis-ci.com/user/languages/python +language: python +python: + - "3.2" + - "3.3" + - "3.4" + - "3.5" + #- "3.5-dev" # 3.5 development branch + #- "nightly" # points to the latest development branch e.g. 3.6-dev +# command to install dependencies +install: "pip install -r requirements.txt" +# command to run tests +script: nosetests diff --git a/hackfest/restconf/connectionserver/Dockerfile b/hackfest/restconf/connectionserver/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f9243a5ad0d025c5481e5a81bac213f716242100 --- /dev/null +++ b/hackfest/restconf/connectionserver/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.6-alpine + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +COPY requirements.txt /usr/src/app/ + +RUN pip3 install --no-cache-dir -r requirements.txt + +COPY . /usr/src/app + +EXPOSE 8080 + +ENTRYPOINT ["python3"] + +CMD ["-m", "swagger_server"] \ No newline at end of file diff --git a/hackfest/restconf/connectionserver/README.md b/hackfest/restconf/connectionserver/README.md new file mode 100644 index 0000000000000000000000000000000000000000..857c30a462c3dbad326a7d0a6b7b278f36fb9bd9 --- /dev/null +++ b/hackfest/restconf/connectionserver/README.md @@ -0,0 +1,49 @@ +# Swagger generated server + +## Overview +This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the +[OpenAPI-Spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This +is an example of building a swagger-enabled Flask server. + +This example uses the [Connexion](https://github.com/zalando/connexion) library on top of Flask. + +## Requirements +Python 3.5.2+ + +## Usage +To run the server, please execute the following from the root directory: + +``` +pip3 install -r requirements.txt +python3 -m swagger_server +``` + +and open your browser to here: + +``` +http://localhost:8080/ui/ +``` + +Your Swagger definition lives here: + +``` +http://localhost:8080/swagger.json +``` + +To launch the integration tests, use tox: +``` +sudo pip install tox +tox +``` + +## Running with Docker + +To run the server on a Docker container, please execute the following from the root directory: + +```bash +# building the image +docker build -t swagger_server . + +# starting up a container +docker run -p 8080:8080 swagger_server +``` \ No newline at end of file diff --git a/hackfest/restconf/connectionserver/git_push.sh b/hackfest/restconf/connectionserver/git_push.sh new file mode 100644 index 0000000000000000000000000000000000000000..160f6f213999c7ae67839fbd6fc2ba0b72675832 --- /dev/null +++ b/hackfest/restconf/connectionserver/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/hackfest/restconf/connectionserver/requirements.txt b/hackfest/restconf/connectionserver/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..b5bc506572753f5a29d2c1115a6ac15f34f09be8 --- /dev/null +++ b/hackfest/restconf/connectionserver/requirements.txt @@ -0,0 +1,3 @@ +connexion == 2.2.0 +python_dateutil == 2.6.0 +setuptools >= 21.0.0 diff --git a/hackfest/restconf/connectionserver/setup.py b/hackfest/restconf/connectionserver/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..ba555c8a10b6e535508e81429887aa00e30d3c1a --- /dev/null +++ b/hackfest/restconf/connectionserver/setup.py @@ -0,0 +1,33 @@ +# coding: utf-8 + +import sys +from setuptools import setup, find_packages + +NAME = "swagger_server" +VERSION = "1.0.0" +# To install the library, run the following +# +# python setup.py install +# +# prerequisite: setuptools +# http://pypi.python.org/pypi/setuptools + +REQUIRES = ["connexion"] + +setup( + name=NAME, + version=VERSION, + description="connection API", + author_email="", + url="", + keywords=["Swagger", "connection API"], + install_requires=REQUIRES, + packages=find_packages(), + package_data={'': ['swagger/swagger.yaml']}, + include_package_data=True, + entry_points={ + 'console_scripts': ['swagger_server=swagger_server.__main__:main']}, + long_description="""\ + connection API generated from yang definitions + """ +) diff --git a/hackfest/restconf/connectionserver/swagger_server/__init__.py b/hackfest/restconf/connectionserver/swagger_server/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/restconf/connectionserver/swagger_server/__main__.py b/hackfest/restconf/connectionserver/swagger_server/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..db49e4dcca3214b032f8dbd2a64f064dd685b389 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/__main__.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import connexion + +from swagger_server import encoder + + +def main(): + app = connexion.App(__name__, specification_dir='./swagger/') + app.app.json_encoder = encoder.JSONEncoder + app.app.config['JSON_SORT_KEYS']=False + app.add_api('swagger.yaml', arguments={'title': 'connection API'}, pythonic_params=True) + app.run(port=8080) + + +if __name__ == '__main__': + main() diff --git a/hackfest/restconf/connectionserver/swagger_server/controllers/__init__.py b/hackfest/restconf/connectionserver/swagger_server/controllers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/restconf/connectionserver/swagger_server/controllers/authorization_controller.py b/hackfest/restconf/connectionserver/swagger_server/controllers/authorization_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2f7b0bb3e281b3fb9efb588dfc8ba4c8cc3a59ed --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/controllers/authorization_controller.py @@ -0,0 +1,6 @@ +from typing import List +""" +controller generated to handled auth operation described at: +https://connexion.readthedocs.io/en/latest/security.html +""" + diff --git a/hackfest/restconf/connectionserver/swagger_server/controllers/connection_controller.py b/hackfest/restconf/connectionserver/swagger_server/controllers/connection_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..8caa1e2ebe210c03791c13511cd555f333c5cf61 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/controllers/connection_controller.py @@ -0,0 +1,89 @@ +import connexion +import six +import swagger_server.database as database + +from swagger_server.models.connection_connection import ConnectionConnection # noqa: E501 +from swagger_server import util + + +def data_connection_post(body=None): # noqa: E501 + """data_connection_post + + creates connection.Connection # noqa: E501 + + :param body: connection.Connection to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = ConnectionConnection.from_dict(connexion.request.get_json()) + body.connection_id=str(database.last_connection_id) + database.connection[str(database.last_connection_id)] = body + database.last_connection_id+=1 + return body + + +def data_connectionconnection_id_delete(connection_id): # noqa: E501 + """data_connectionconnection_id_delete + + removes connection.Connection # noqa: E501 + + :param connection_id: Id of connection + :type connection_id: str + + :rtype: None + """ + del database.connection[connection_id] + return 'ok' + + + +def data_connectionconnection_id_get(connection_id): # noqa: E501 + """data_connectionconnection_id_get + + returns connection.Connection # noqa: E501 + + :param connection_id: Id of connection + :type connection_id: str + + :rtype: ConnectionConnection + """ + print(database.connection) + if connection_id in database.connection: + return database.connection[connection_id] + return "Error", 400 + + +def data_connectionconnection_id_post(connection_id, body=None): # noqa: E501 + """data_connectionconnection_id_post + + creates connection.Connection # noqa: E501 + + :param connection_id: Id of connection + :type connection_id: str + :param body: connection.Connection to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = ConnectionConnection.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_connectionconnection_id_put(connection_id, body=None): # noqa: E501 + """data_connectionconnection_id_put + + creates or updates connection.Connection # noqa: E501 + + :param connection_id: Id of connection + :type connection_id: str + :param body: connection.Connection to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = ConnectionConnection.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/restconf/connectionserver/swagger_server/database.py b/hackfest/restconf/connectionserver/swagger_server/database.py new file mode 100644 index 0000000000000000000000000000000000000000..9a5ea9fb27287e734eb72af4e9c8958b854801c7 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/database.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +from swagger_server.models.connection_connection import ConnectionConnection + +connection = {} +last_connection_id = 0 + diff --git a/hackfest/restconf/connectionserver/swagger_server/encoder.py b/hackfest/restconf/connectionserver/swagger_server/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..61ba4721961a65d38af5d5ce2948b0abe9c7aa58 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/encoder.py @@ -0,0 +1,20 @@ +from connexion.apps.flask_app import FlaskJSONEncoder +import six + +from swagger_server.models.base_model_ import Model + + +class JSONEncoder(FlaskJSONEncoder): + include_nulls = False + + def default(self, o): + if isinstance(o, Model): + dikt = {} + for attr, _ in six.iteritems(o.swagger_types): + value = getattr(o, attr) + if value is None and not self.include_nulls: + continue + attr = o.attribute_map[attr] + dikt[attr] = value + return dikt + return FlaskJSONEncoder.default(self, o) diff --git a/hackfest/restconf/connectionserver/swagger_server/models/__init__.py b/hackfest/restconf/connectionserver/swagger_server/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4df84643893fc3e509f355a8d47e4e1c653f8109 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/models/__init__.py @@ -0,0 +1,7 @@ +# coding: utf-8 + +# flake8: noqa +from __future__ import absolute_import +# import models into model package +from swagger_server.models.connection_connection import ConnectionConnection +from swagger_server.models.topology_layer_protocol_name import TopologyLayerProtocolName diff --git a/hackfest/restconf/connectionserver/swagger_server/models/base_model_.py b/hackfest/restconf/connectionserver/swagger_server/models/base_model_.py new file mode 100644 index 0000000000000000000000000000000000000000..97999c3d3237c287013b2139acb9858a52b454e8 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/models/base_model_.py @@ -0,0 +1,69 @@ +import pprint + +import six +import typing + +from swagger_server import util + +T = typing.TypeVar('T') + + +class Model(object): + # swaggerTypes: The key is attribute name and the + # value is attribute type. + swagger_types = {} + + # attributeMap: The key is attribute name and the + # value is json key in definition. + attribute_map = {} + + @classmethod + def from_dict(cls: typing.Type[T], dikt) -> T: + """Returns the dict as a model""" + return util.deserialize_model(dikt, cls) + + def to_dict(self): + """Returns the model properties as a dict + + :rtype: dict + """ + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model + + :rtype: str + """ + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/hackfest/restconf/connectionserver/swagger_server/models/connection_connection.py b/hackfest/restconf/connectionserver/swagger_server/models/connection_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..6d6ab83afa2600cd4f42b12dee80a572f9bf8024 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/models/connection_connection.py @@ -0,0 +1,219 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server.models.topology_layer_protocol_name import TopologyLayerProtocolName # noqa: F401,E501 +from swagger_server import util + + +class ConnectionConnection(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, target_port: str=None, source_port: str=None, target_node: str=None, connection_id: str=None, bandwidth: int=None, source_node: str=None, layer_protocol_name: TopologyLayerProtocolName=None): # noqa: E501 + """ConnectionConnection - a model defined in Swagger + + :param target_port: The target_port of this ConnectionConnection. # noqa: E501 + :type target_port: str + :param source_port: The source_port of this ConnectionConnection. # noqa: E501 + :type source_port: str + :param target_node: The target_node of this ConnectionConnection. # noqa: E501 + :type target_node: str + :param connection_id: The connection_id of this ConnectionConnection. # noqa: E501 + :type connection_id: str + :param bandwidth: The bandwidth of this ConnectionConnection. # noqa: E501 + :type bandwidth: int + :param source_node: The source_node of this ConnectionConnection. # noqa: E501 + :type source_node: str + :param layer_protocol_name: The layer_protocol_name of this ConnectionConnection. # noqa: E501 + :type layer_protocol_name: TopologyLayerProtocolName + """ + self.swagger_types = { + 'target_port': str, + 'source_port': str, + 'target_node': str, + 'connection_id': str, + 'bandwidth': int, + 'source_node': str, + 'layer_protocol_name': TopologyLayerProtocolName + } + + self.attribute_map = { + 'target_port': 'target-port', + 'source_port': 'source-port', + 'target_node': 'target-node', + 'connection_id': 'connection-id', + 'bandwidth': 'bandwidth', + 'source_node': 'source-node', + 'layer_protocol_name': 'layer-protocol-name' + } + self._target_port = target_port + self._source_port = source_port + self._target_node = target_node + self._connection_id = connection_id + self._bandwidth = bandwidth + self._source_node = source_node + self._layer_protocol_name = layer_protocol_name + + @classmethod + def from_dict(cls, dikt) -> 'ConnectionConnection': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The connection.Connection of this ConnectionConnection. # noqa: E501 + :rtype: ConnectionConnection + """ + return util.deserialize_model(dikt, cls) + + @property + def target_port(self) -> str: + """Gets the target_port of this ConnectionConnection. + + + :return: The target_port of this ConnectionConnection. + :rtype: str + """ + return self._target_port + + @target_port.setter + def target_port(self, target_port: str): + """Sets the target_port of this ConnectionConnection. + + + :param target_port: The target_port of this ConnectionConnection. + :type target_port: str + """ + + self._target_port = target_port + + @property + def source_port(self) -> str: + """Gets the source_port of this ConnectionConnection. + + + :return: The source_port of this ConnectionConnection. + :rtype: str + """ + return self._source_port + + @source_port.setter + def source_port(self, source_port: str): + """Sets the source_port of this ConnectionConnection. + + + :param source_port: The source_port of this ConnectionConnection. + :type source_port: str + """ + + self._source_port = source_port + + @property + def target_node(self) -> str: + """Gets the target_node of this ConnectionConnection. + + + :return: The target_node of this ConnectionConnection. + :rtype: str + """ + return self._target_node + + @target_node.setter + def target_node(self, target_node: str): + """Sets the target_node of this ConnectionConnection. + + + :param target_node: The target_node of this ConnectionConnection. + :type target_node: str + """ + + self._target_node = target_node + + @property + def connection_id(self) -> str: + """Gets the connection_id of this ConnectionConnection. + + + :return: The connection_id of this ConnectionConnection. + :rtype: str + """ + return self._connection_id + + @connection_id.setter + def connection_id(self, connection_id: str): + """Sets the connection_id of this ConnectionConnection. + + + :param connection_id: The connection_id of this ConnectionConnection. + :type connection_id: str + """ + + self._connection_id = connection_id + + @property + def bandwidth(self) -> int: + """Gets the bandwidth of this ConnectionConnection. + + + :return: The bandwidth of this ConnectionConnection. + :rtype: int + """ + return self._bandwidth + + @bandwidth.setter + def bandwidth(self, bandwidth: int): + """Sets the bandwidth of this ConnectionConnection. + + + :param bandwidth: The bandwidth of this ConnectionConnection. + :type bandwidth: int + """ + + self._bandwidth = bandwidth + + @property + def source_node(self) -> str: + """Gets the source_node of this ConnectionConnection. + + + :return: The source_node of this ConnectionConnection. + :rtype: str + """ + return self._source_node + + @source_node.setter + def source_node(self, source_node: str): + """Sets the source_node of this ConnectionConnection. + + + :param source_node: The source_node of this ConnectionConnection. + :type source_node: str + """ + + self._source_node = source_node + + @property + def layer_protocol_name(self) -> TopologyLayerProtocolName: + """Gets the layer_protocol_name of this ConnectionConnection. + + + :return: The layer_protocol_name of this ConnectionConnection. + :rtype: TopologyLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TopologyLayerProtocolName): + """Sets the layer_protocol_name of this ConnectionConnection. + + + :param layer_protocol_name: The layer_protocol_name of this ConnectionConnection. + :type layer_protocol_name: TopologyLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name diff --git a/hackfest/restconf/connectionserver/swagger_server/models/topology_layer_protocol_name.py b/hackfest/restconf/connectionserver/swagger_server/models/topology_layer_protocol_name.py new file mode 100644 index 0000000000000000000000000000000000000000..2ea9beed2bf84b9288fb5829ebcabd2440d5a81b --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/models/topology_layer_protocol_name.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server import util + + +class TopologyLayerProtocolName(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + ETH = "ETH" + OPTICAL = "OPTICAL" + def __init__(self): # noqa: E501 + """TopologyLayerProtocolName - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TopologyLayerProtocolName': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.LayerProtocolName of this TopologyLayerProtocolName. # noqa: E501 + :rtype: TopologyLayerProtocolName + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/restconf/connectionserver/swagger_server/swagger/swagger.yaml b/hackfest/restconf/connectionserver/swagger_server/swagger/swagger.yaml new file mode 100644 index 0000000000000000000000000000000000000000..85af552040a86c147fdc96fc0f602f33046686a0 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/swagger/swagger.yaml @@ -0,0 +1,174 @@ +openapi: 3.0.1 +info: + title: connection API + description: connection API generated from yang definitions + version: "1.0" +servers: +- url: //localhost:1234/ +paths: + /data/connection/: + post: + tags: + - connection + description: creates connection.Connection + operationId: data_connection_post + requestBody: + description: connection.Connection to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/connection.Connection' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.connection_controller + /data/connection={connection-id}/: + get: + tags: + - connection + description: returns connection.Connection + operationId: data_connectionconnection_id_get + parameters: + - name: connection-id + in: path + description: Id of connection + required: true + schema: + type: string + responses: + 200: + description: connection.Connection + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/connection.Connection' + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.connection_controller + put: + tags: + - connection + description: creates or updates connection.Connection + operationId: data_connectionconnection_id_put + parameters: + - name: connection-id + in: path + description: Id of connection + required: true + schema: + type: string + requestBody: + description: connection.Connection to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/connection.Connection' + required: false + responses: + 201: + description: Object created + content: {} + 204: + description: Object modified + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.connection_controller + post: + tags: + - connection + description: creates connection.Connection + operationId: data_connectionconnection_id_post + parameters: + - name: connection-id + in: path + description: Id of connection + required: true + schema: + type: string + requestBody: + description: connection.Connection to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/connection.Connection' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.connection_controller + delete: + tags: + - connection + description: removes connection.Connection + operationId: data_connectionconnection_id_delete + parameters: + - name: connection-id + in: path + description: Id of connection + required: true + schema: + type: string + responses: + 204: + description: Object deleted + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.connection_controller +components: + schemas: + connection.Connection: + type: object + properties: + target-port: + type: string + x-path: /topology:topology/topology:node/topology:port/topology:port-id + source-port: + type: string + x-path: /topology:topology/topology:node/topology:port/topology:port-id + target-node: + type: string + x-path: /topology:topology/topology:node/topology:node-id + connection-id: + type: string + bandwidth: + type: integer + format: int64 + source-node: + type: string + x-path: /topology:topology/topology:node/topology:node-id + layer-protocol-name: + $ref: '#/components/schemas/topology.LayerProtocolName' + example: + target-port: target-port + source-port: source-port + target-node: target-node + connection-id: connection-id + bandwidth: 0 + source-node: source-node + layer-protocol-name: ETH + topology.LayerProtocolName: + type: string + enum: + - ETH + - OPTICAL + diff --git a/hackfest/restconf/connectionserver/swagger_server/test/__init__.py b/hackfest/restconf/connectionserver/swagger_server/test/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..644506301ce077f2e881fcda3454b6cba362ab5e --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/test/__init__.py @@ -0,0 +1,16 @@ +import logging + +import connexion +from flask_testing import TestCase + +from swagger_server.encoder import JSONEncoder + + +class BaseTestCase(TestCase): + + def create_app(self): + logging.getLogger('connexion.operation').setLevel('ERROR') + app = connexion.App(__name__, specification_dir='../swagger/') + app.app.json_encoder = JSONEncoder + app.add_api('swagger.yaml') + return app.app diff --git a/hackfest/restconf/connectionserver/swagger_server/test/test_connection_controller.py b/hackfest/restconf/connectionserver/swagger_server/test/test_connection_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..325dad4852c3583f0067499c177b56b1d7c569b7 --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/test/test_connection_controller.py @@ -0,0 +1,82 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from swagger_server.models.connection_connection import ConnectionConnection # noqa: E501 +from swagger_server.test import BaseTestCase + + +class TestConnectionController(BaseTestCase): + """ConnectionController integration test stubs""" + + def test_data_connection_post(self): + """Test case for data_connection_post + + + """ + body = ConnectionConnection() + response = self.client.open( + '/data/connection/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_connectionconnection_id_delete(self): + """Test case for data_connectionconnection_id_delete + + + """ + response = self.client.open( + '/data/connection={connection-id}/'.format(connection_id='connection_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_connectionconnection_id_get(self): + """Test case for data_connectionconnection_id_get + + + """ + response = self.client.open( + '/data/connection={connection-id}/'.format(connection_id='connection_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_connectionconnection_id_post(self): + """Test case for data_connectionconnection_id_post + + + """ + body = ConnectionConnection() + response = self.client.open( + '/data/connection={connection-id}/'.format(connection_id='connection_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_connectionconnection_id_put(self): + """Test case for data_connectionconnection_id_put + + + """ + body = ConnectionConnection() + response = self.client.open( + '/data/connection={connection-id}/'.format(connection_id='connection_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/restconf/connectionserver/swagger_server/util.py b/hackfest/restconf/connectionserver/swagger_server/util.py new file mode 100644 index 0000000000000000000000000000000000000000..527d1424c3d5563073b18b4da1a9904b2cb6b62b --- /dev/null +++ b/hackfest/restconf/connectionserver/swagger_server/util.py @@ -0,0 +1,141 @@ +import datetime + +import six +import typing + + +def _deserialize(data, klass): + """Deserializes dict, list, str into an object. + + :param data: dict, list or str. + :param klass: class literal, or string of class name. + + :return: object. + """ + if data is None: + return None + + if klass in six.integer_types or klass in (float, str, bool): + return _deserialize_primitive(data, klass) + elif klass == object: + return _deserialize_object(data) + elif klass == datetime.date: + return deserialize_date(data) + elif klass == datetime.datetime: + return deserialize_datetime(data) + elif type(klass) == typing.GenericMeta: + if klass.__extra__ == list: + return _deserialize_list(data, klass.__args__[0]) + if klass.__extra__ == dict: + return _deserialize_dict(data, klass.__args__[1]) + else: + return deserialize_model(data, klass) + + +def _deserialize_primitive(data, klass): + """Deserializes to primitive type. + + :param data: data to deserialize. + :param klass: class literal. + + :return: int, long, float, str, bool. + :rtype: int | long | float | str | bool + """ + try: + value = klass(data) + except UnicodeEncodeError: + value = six.u(data) + except TypeError: + value = data + return value + + +def _deserialize_object(value): + """Return a original value. + + :return: object. + """ + return value + + +def deserialize_date(string): + """Deserializes string to date. + + :param string: str. + :type string: str + :return: date. + :rtype: date + """ + try: + from dateutil.parser import parse + return parse(string).date() + except ImportError: + return string + + +def deserialize_datetime(string): + """Deserializes string to datetime. + + The string should be in iso8601 datetime format. + + :param string: str. + :type string: str + :return: datetime. + :rtype: datetime + """ + try: + from dateutil.parser import parse + return parse(string) + except ImportError: + return string + + +def deserialize_model(data, klass): + """Deserializes list or dict to model. + + :param data: dict, list. + :type data: dict | list + :param klass: class literal. + :return: model object. + """ + instance = klass() + + if not instance.swagger_types: + return data + + for attr, attr_type in six.iteritems(instance.swagger_types): + if data is not None \ + and instance.attribute_map[attr] in data \ + and isinstance(data, (list, dict)): + value = data[instance.attribute_map[attr]] + setattr(instance, attr, _deserialize(value, attr_type)) + + return instance + + +def _deserialize_list(data, boxed_type): + """Deserializes a list and its elements. + + :param data: list to deserialize. + :type data: list + :param boxed_type: class literal. + + :return: deserialized list. + :rtype: list + """ + return [_deserialize(sub_data, boxed_type) + for sub_data in data] + + +def _deserialize_dict(data, boxed_type): + """Deserializes a dict and its elements. + + :param data: dict to deserialize. + :type data: dict + :param boxed_type: class literal. + + :return: deserialized dict. + :rtype: dict + """ + return {k: _deserialize(v, boxed_type) + for k, v in six.iteritems(data)} diff --git a/hackfest/restconf/connectionserver/test-requirements.txt b/hackfest/restconf/connectionserver/test-requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..7f8d96e6b40e853d658f88fa745ddcf37ff7644c --- /dev/null +++ b/hackfest/restconf/connectionserver/test-requirements.txt @@ -0,0 +1,6 @@ +flask_testing==0.6.1 +coverage>=4.0.3 +nose>=1.3.7 +pluggy>=0.3.1 +py>=1.4.31 +randomize>=0.13 diff --git a/hackfest/restconf/connectionserver/tox.ini b/hackfest/restconf/connectionserver/tox.ini new file mode 100644 index 0000000000000000000000000000000000000000..3e0b644eec48f0d6d63f028c28315ca0eda5896f --- /dev/null +++ b/hackfest/restconf/connectionserver/tox.ini @@ -0,0 +1,10 @@ +[tox] +envlist = py35 + +[testenv] +deps=-r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +commands= + nosetests \ + [] \ No newline at end of file diff --git a/hackfest/restconf/swagger-codegen-cli.jar b/hackfest/restconf/swagger-codegen-cli.jar new file mode 100644 index 0000000000000000000000000000000000000000..25f1f6f6f77e43fc78812bd60428b859a48433f9 Binary files /dev/null and b/hackfest/restconf/swagger-codegen-cli.jar differ diff --git a/hackfest/restconf/swagger-generator-cli-1.1.11-executable.jar b/hackfest/restconf/swagger-generator-cli-1.1.11-executable.jar new file mode 100644 index 0000000000000000000000000000000000000000..d5aebe2734e7488f597418e724ed1abb611ad2d8 Binary files /dev/null and b/hackfest/restconf/swagger-generator-cli-1.1.11-executable.jar differ diff --git a/hackfest/restconf/topology.yaml b/hackfest/restconf/topology.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ebb0b7e3ca91597809aabddf0baea422d843db71 --- /dev/null +++ b/hackfest/restconf/topology.yaml @@ -0,0 +1,440 @@ +--- +swagger: "2.0" +info: + description: "topology API generated from yang definitions" + version: "1.0" + title: "topology API" +host: "localhost:1234" +consumes: +- "application/yang-data+json" +produces: +- "application/yang-data+json" +paths: + /data/topology/: + get: + tags: + - "topology" + description: "returns topology.Topology" + parameters: [] + responses: + 200: + description: "topology.Topology" + schema: + $ref: "#/definitions/topology.Topology" + 400: + description: "Internal error" + post: + tags: + - "topology" + description: "creates topology.Topology" + parameters: + - in: "body" + name: "topology.Topology.body-param" + description: "topology.Topology to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Topology" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "topology" + description: "creates or updates topology.Topology" + parameters: + - in: "body" + name: "topology.Topology.body-param" + description: "topology.Topology to be added or updated" + required: false + schema: + $ref: "#/definitions/topology.Topology" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "topology" + description: "removes topology.Topology" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/topology/link/: + post: + tags: + - "topology" + description: "creates topology.Link" + parameters: + - in: "body" + name: "topology.Link.body-param" + description: "topology.Link to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Link" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/topology/link={link-id}/: + get: + tags: + - "topology" + description: "returns topology.Link" + parameters: + - name: "link-id" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "topology.Link" + schema: + $ref: "#/definitions/topology.Link" + 400: + description: "Internal error" + post: + tags: + - "topology" + description: "creates topology.Link" + parameters: + - name: "link-id" + in: "path" + description: "Id of link" + required: true + type: "string" + - in: "body" + name: "topology.Link.body-param" + description: "topology.Link to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Link" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "topology" + description: "creates or updates topology.Link" + parameters: + - name: "link-id" + in: "path" + description: "Id of link" + required: true + type: "string" + - in: "body" + name: "topology.Link.body-param" + description: "topology.Link to be added or updated" + required: false + schema: + $ref: "#/definitions/topology.Link" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "topology" + description: "removes topology.Link" + parameters: + - name: "link-id" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/topology/node/: + post: + tags: + - "topology" + description: "creates topology.Node" + parameters: + - in: "body" + name: "topology.Node.body-param" + description: "topology.Node to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Node" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/topology/node={node-id}/: + get: + tags: + - "topology" + description: "returns topology.Node" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "topology.Node" + schema: + $ref: "#/definitions/topology.Node" + 400: + description: "Internal error" + post: + tags: + - "topology" + description: "creates topology.Node" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - in: "body" + name: "topology.Node.body-param" + description: "topology.Node to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Node" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "topology" + description: "creates or updates topology.Node" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - in: "body" + name: "topology.Node.body-param" + description: "topology.Node to be added or updated" + required: false + schema: + $ref: "#/definitions/topology.Node" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "topology" + description: "removes topology.Node" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/topology/node={node-id}/port/: + post: + tags: + - "topology" + description: "creates topology.Port" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - in: "body" + name: "topology.Port.body-param" + description: "topology.Port to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Port" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/topology/node={node-id}/port={port-id}/: + get: + tags: + - "topology" + description: "returns topology.Port" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "port-id" + in: "path" + description: "Id of port" + required: true + type: "string" + responses: + 200: + description: "topology.Port" + schema: + $ref: "#/definitions/topology.Port" + 400: + description: "Internal error" + post: + tags: + - "topology" + description: "creates topology.Port" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "port-id" + in: "path" + description: "Id of port" + required: true + type: "string" + - in: "body" + name: "topology.Port.body-param" + description: "topology.Port to be added to list" + required: false + schema: + $ref: "#/definitions/topology.Port" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "topology" + description: "creates or updates topology.Port" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "port-id" + in: "path" + description: "Id of port" + required: true + type: "string" + - in: "body" + name: "topology.Port.body-param" + description: "topology.Port to be added or updated" + required: false + schema: + $ref: "#/definitions/topology.Port" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "topology" + description: "removes topology.Port" + parameters: + - name: "node-id" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "port-id" + in: "path" + description: "Id of port" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" +definitions: + topology.LayerProtocolName: + type: "string" + enum: + - "ETH" + - "OPTICAL" + topology.Link: + type: "object" + properties: + target-port: + type: "string" + x-path: "/topology/node/port/port-id" + source-port: + type: "string" + x-path: "/topology/node/port/port-id" + target-node: + type: "string" + x-path: "/topology/node/node-id" + link-id: + type: "string" + source-node: + type: "string" + x-path: "/topology/node/node-id" + topology.Node: + type: "object" + properties: + node-id: + type: "string" + port: + type: "array" + items: + $ref: "#/definitions/topology.Port" + topology.Port: + type: "object" + properties: + layer-protocol-name: + $ref: "#/definitions/topology.LayerProtocolName" + port-id: + type: "string" + topology.Topology: + type: "object" + properties: + link: + type: "array" + items: + $ref: "#/definitions/topology.Link" + node: + type: "array" + items: + $ref: "#/definitions/topology.Node" diff --git a/hackfest/restconf/topologyserver/.dockerignore b/hackfest/restconf/topologyserver/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..cdd823e64e7e91ae85da84f22410ecb7eb370ae2 --- /dev/null +++ b/hackfest/restconf/topologyserver/.dockerignore @@ -0,0 +1,72 @@ +.travis.yaml +.swagger-codegen-ignore +README.md +tox.ini +git_push.sh +test-requirements.txt +setup.py + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/restconf/topologyserver/.gitignore b/hackfest/restconf/topologyserver/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a655050c2631466828b5b8bfc59ae27f9ac02dc5 --- /dev/null +++ b/hackfest/restconf/topologyserver/.gitignore @@ -0,0 +1,64 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/restconf/topologyserver/.swagger-codegen-ignore b/hackfest/restconf/topologyserver/.swagger-codegen-ignore new file mode 100644 index 0000000000000000000000000000000000000000..c5fa491b4c557bf997d5dd21797de782545dc9e5 --- /dev/null +++ b/hackfest/restconf/topologyserver/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/hackfest/restconf/topologyserver/.swagger-codegen/VERSION b/hackfest/restconf/topologyserver/.swagger-codegen/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..e4a0720dd5141073dced1d64dddb6afd14bf26d3 --- /dev/null +++ b/hackfest/restconf/topologyserver/.swagger-codegen/VERSION @@ -0,0 +1 @@ +3.0.11 \ No newline at end of file diff --git a/hackfest/restconf/topologyserver/.travis.yml b/hackfest/restconf/topologyserver/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..dd6c4450aa902ae68479c3d76d45145e18d6052e --- /dev/null +++ b/hackfest/restconf/topologyserver/.travis.yml @@ -0,0 +1,13 @@ +# ref: https://docs.travis-ci.com/user/languages/python +language: python +python: + - "3.2" + - "3.3" + - "3.4" + - "3.5" + #- "3.5-dev" # 3.5 development branch + #- "nightly" # points to the latest development branch e.g. 3.6-dev +# command to install dependencies +install: "pip install -r requirements.txt" +# command to run tests +script: nosetests diff --git a/hackfest/restconf/topologyserver/Dockerfile b/hackfest/restconf/topologyserver/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f9243a5ad0d025c5481e5a81bac213f716242100 --- /dev/null +++ b/hackfest/restconf/topologyserver/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.6-alpine + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +COPY requirements.txt /usr/src/app/ + +RUN pip3 install --no-cache-dir -r requirements.txt + +COPY . /usr/src/app + +EXPOSE 8080 + +ENTRYPOINT ["python3"] + +CMD ["-m", "swagger_server"] \ No newline at end of file diff --git a/hackfest/restconf/topologyserver/README.md b/hackfest/restconf/topologyserver/README.md new file mode 100644 index 0000000000000000000000000000000000000000..857c30a462c3dbad326a7d0a6b7b278f36fb9bd9 --- /dev/null +++ b/hackfest/restconf/topologyserver/README.md @@ -0,0 +1,49 @@ +# Swagger generated server + +## Overview +This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the +[OpenAPI-Spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This +is an example of building a swagger-enabled Flask server. + +This example uses the [Connexion](https://github.com/zalando/connexion) library on top of Flask. + +## Requirements +Python 3.5.2+ + +## Usage +To run the server, please execute the following from the root directory: + +``` +pip3 install -r requirements.txt +python3 -m swagger_server +``` + +and open your browser to here: + +``` +http://localhost:8080/ui/ +``` + +Your Swagger definition lives here: + +``` +http://localhost:8080/swagger.json +``` + +To launch the integration tests, use tox: +``` +sudo pip install tox +tox +``` + +## Running with Docker + +To run the server on a Docker container, please execute the following from the root directory: + +```bash +# building the image +docker build -t swagger_server . + +# starting up a container +docker run -p 8080:8080 swagger_server +``` \ No newline at end of file diff --git a/hackfest/restconf/topologyserver/git_push.sh b/hackfest/restconf/topologyserver/git_push.sh new file mode 100644 index 0000000000000000000000000000000000000000..160f6f213999c7ae67839fbd6fc2ba0b72675832 --- /dev/null +++ b/hackfest/restconf/topologyserver/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/hackfest/restconf/topologyserver/requirements.txt b/hackfest/restconf/topologyserver/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..b5bc506572753f5a29d2c1115a6ac15f34f09be8 --- /dev/null +++ b/hackfest/restconf/topologyserver/requirements.txt @@ -0,0 +1,3 @@ +connexion == 2.2.0 +python_dateutil == 2.6.0 +setuptools >= 21.0.0 diff --git a/hackfest/restconf/topologyserver/setup.py b/hackfest/restconf/topologyserver/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..69a77b68664be2b9e6d2375fbcedbf88c3c1da06 --- /dev/null +++ b/hackfest/restconf/topologyserver/setup.py @@ -0,0 +1,33 @@ +# coding: utf-8 + +import sys +from setuptools import setup, find_packages + +NAME = "swagger_server" +VERSION = "1.0.0" +# To install the library, run the following +# +# python setup.py install +# +# prerequisite: setuptools +# http://pypi.python.org/pypi/setuptools + +REQUIRES = ["connexion"] + +setup( + name=NAME, + version=VERSION, + description="topology API", + author_email="", + url="", + keywords=["Swagger", "topology API"], + install_requires=REQUIRES, + packages=find_packages(), + package_data={'': ['swagger/swagger.yaml']}, + include_package_data=True, + entry_points={ + 'console_scripts': ['swagger_server=swagger_server.__main__:main']}, + long_description="""\ + topology API generated from yang definitions + """ +) diff --git a/hackfest/restconf/topologyserver/swagger_server/__init__.py b/hackfest/restconf/topologyserver/swagger_server/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/restconf/topologyserver/swagger_server/__main__.py b/hackfest/restconf/topologyserver/swagger_server/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..752351aee00ec887d121457a3bba84206c731374 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/__main__.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 + +import connexion + +from swagger_server import encoder + + +def main(): + app = connexion.App(__name__, specification_dir='./swagger/') + app.app.json_encoder = encoder.JSONEncoder + app.add_api('swagger.yaml', arguments={'title': 'topology API'}, pythonic_params=True) + app.run(port=8080) + + +if __name__ == '__main__': + main() diff --git a/hackfest/restconf/topologyserver/swagger_server/controllers/__init__.py b/hackfest/restconf/topologyserver/swagger_server/controllers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/restconf/topologyserver/swagger_server/controllers/authorization_controller.py b/hackfest/restconf/topologyserver/swagger_server/controllers/authorization_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2f7b0bb3e281b3fb9efb588dfc8ba4c8cc3a59ed --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/controllers/authorization_controller.py @@ -0,0 +1,6 @@ +from typing import List +""" +controller generated to handled auth operation described at: +https://connexion.readthedocs.io/en/latest/security.html +""" + diff --git a/hackfest/restconf/topologyserver/swagger_server/controllers/topology_controller.py b/hackfest/restconf/topologyserver/swagger_server/controllers/topology_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..068c9385d00c4a3191a7729dffde45735474c0ef --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/controllers/topology_controller.py @@ -0,0 +1,295 @@ +import connexion +import six + +from swagger_server.models.topology_link import TopologyLink # noqa: E501 +from swagger_server.models.topology_node import TopologyNode # noqa: E501 +from swagger_server.models.topology_port import TopologyPort # noqa: E501 +from swagger_server.models.topology_topology import TopologyTopology # noqa: E501 +from swagger_server import util + + +def data_topology_delete(): # noqa: E501 + """data_topology_delete + + removes topology.Topology # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_topology_get(): # noqa: E501 + """data_topology_get + + returns topology.Topology # noqa: E501 + + + :rtype: TopologyTopology + """ + return 'do some magic!' + + +def data_topology_link_post(body=None): # noqa: E501 + """data_topology_link_post + + creates topology.Link # noqa: E501 + + :param body: topology.Link to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyLink.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_linklink_id_delete(link_id): # noqa: E501 + """data_topology_linklink_id_delete + + removes topology.Link # noqa: E501 + + :param link_id: Id of link + :type link_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_topology_linklink_id_get(link_id): # noqa: E501 + """data_topology_linklink_id_get + + returns topology.Link # noqa: E501 + + :param link_id: Id of link + :type link_id: str + + :rtype: TopologyLink + """ + return 'do some magic!' + + +def data_topology_linklink_id_post(link_id, body=None): # noqa: E501 + """data_topology_linklink_id_post + + creates topology.Link # noqa: E501 + + :param link_id: Id of link + :type link_id: str + :param body: topology.Link to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyLink.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_linklink_id_put(link_id, body=None): # noqa: E501 + """data_topology_linklink_id_put + + creates or updates topology.Link # noqa: E501 + + :param link_id: Id of link + :type link_id: str + :param body: topology.Link to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyLink.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_node_post(body=None): # noqa: E501 + """data_topology_node_post + + creates topology.Node # noqa: E501 + + :param body: topology.Node to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyNode.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_nodenode_id_delete(node_id): # noqa: E501 + """data_topology_nodenode_id_delete + + removes topology.Node # noqa: E501 + + :param node_id: Id of node + :type node_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_topology_nodenode_id_get(node_id): # noqa: E501 + """data_topology_nodenode_id_get + + returns topology.Node # noqa: E501 + + :param node_id: Id of node + :type node_id: str + + :rtype: TopologyNode + """ + return 'do some magic!' + + +def data_topology_nodenode_id_port_post(node_id, body=None): # noqa: E501 + """data_topology_nodenode_id_port_post + + creates topology.Port # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param body: topology.Port to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyPort.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_nodenode_id_portport_id_delete(node_id, port_id): # noqa: E501 + """data_topology_nodenode_id_portport_id_delete + + removes topology.Port # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param port_id: Id of port + :type port_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_topology_nodenode_id_portport_id_get(node_id, port_id): # noqa: E501 + """data_topology_nodenode_id_portport_id_get + + returns topology.Port # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param port_id: Id of port + :type port_id: str + + :rtype: TopologyPort + """ + return 'do some magic!' + + +def data_topology_nodenode_id_portport_id_post(node_id, port_id, body=None): # noqa: E501 + """data_topology_nodenode_id_portport_id_post + + creates topology.Port # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param port_id: Id of port + :type port_id: str + :param body: topology.Port to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyPort.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_nodenode_id_portport_id_put(node_id, port_id, body=None): # noqa: E501 + """data_topology_nodenode_id_portport_id_put + + creates or updates topology.Port # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param port_id: Id of port + :type port_id: str + :param body: topology.Port to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyPort.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_nodenode_id_post(node_id, body=None): # noqa: E501 + """data_topology_nodenode_id_post + + creates topology.Node # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param body: topology.Node to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyNode.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_nodenode_id_put(node_id, body=None): # noqa: E501 + """data_topology_nodenode_id_put + + creates or updates topology.Node # noqa: E501 + + :param node_id: Id of node + :type node_id: str + :param body: topology.Node to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyNode.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_post(body=None): # noqa: E501 + """data_topology_post + + creates topology.Topology # noqa: E501 + + :param body: topology.Topology to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyTopology.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_topology_put(body=None): # noqa: E501 + """data_topology_put + + creates or updates topology.Topology # noqa: E501 + + :param body: topology.Topology to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TopologyTopology.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/restconf/topologyserver/swagger_server/encoder.py b/hackfest/restconf/topologyserver/swagger_server/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..61ba4721961a65d38af5d5ce2948b0abe9c7aa58 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/encoder.py @@ -0,0 +1,20 @@ +from connexion.apps.flask_app import FlaskJSONEncoder +import six + +from swagger_server.models.base_model_ import Model + + +class JSONEncoder(FlaskJSONEncoder): + include_nulls = False + + def default(self, o): + if isinstance(o, Model): + dikt = {} + for attr, _ in six.iteritems(o.swagger_types): + value = getattr(o, attr) + if value is None and not self.include_nulls: + continue + attr = o.attribute_map[attr] + dikt[attr] = value + return dikt + return FlaskJSONEncoder.default(self, o) diff --git a/hackfest/restconf/topologyserver/swagger_server/models/__init__.py b/hackfest/restconf/topologyserver/swagger_server/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a2b223948a5b83c2ad25221d89643579e1e75f2a --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/__init__.py @@ -0,0 +1,10 @@ +# coding: utf-8 + +# flake8: noqa +from __future__ import absolute_import +# import models into model package +from swagger_server.models.topology_layer_protocol_name import TopologyLayerProtocolName +from swagger_server.models.topology_link import TopologyLink +from swagger_server.models.topology_node import TopologyNode +from swagger_server.models.topology_port import TopologyPort +from swagger_server.models.topology_topology import TopologyTopology diff --git a/hackfest/restconf/topologyserver/swagger_server/models/base_model_.py b/hackfest/restconf/topologyserver/swagger_server/models/base_model_.py new file mode 100644 index 0000000000000000000000000000000000000000..97999c3d3237c287013b2139acb9858a52b454e8 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/base_model_.py @@ -0,0 +1,69 @@ +import pprint + +import six +import typing + +from swagger_server import util + +T = typing.TypeVar('T') + + +class Model(object): + # swaggerTypes: The key is attribute name and the + # value is attribute type. + swagger_types = {} + + # attributeMap: The key is attribute name and the + # value is json key in definition. + attribute_map = {} + + @classmethod + def from_dict(cls: typing.Type[T], dikt) -> T: + """Returns the dict as a model""" + return util.deserialize_model(dikt, cls) + + def to_dict(self): + """Returns the model properties as a dict + + :rtype: dict + """ + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model + + :rtype: str + """ + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/hackfest/restconf/topologyserver/swagger_server/models/topology_layer_protocol_name.py b/hackfest/restconf/topologyserver/swagger_server/models/topology_layer_protocol_name.py new file mode 100644 index 0000000000000000000000000000000000000000..2ea9beed2bf84b9288fb5829ebcabd2440d5a81b --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/topology_layer_protocol_name.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server import util + + +class TopologyLayerProtocolName(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + ETH = "ETH" + OPTICAL = "OPTICAL" + def __init__(self): # noqa: E501 + """TopologyLayerProtocolName - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TopologyLayerProtocolName': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.LayerProtocolName of this TopologyLayerProtocolName. # noqa: E501 + :rtype: TopologyLayerProtocolName + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/restconf/topologyserver/swagger_server/models/topology_link.py b/hackfest/restconf/topologyserver/swagger_server/models/topology_link.py new file mode 100644 index 0000000000000000000000000000000000000000..536e45c4201db476de7792d94711cd600803f17d --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/topology_link.py @@ -0,0 +1,166 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server import util + + +class TopologyLink(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, target_port: str=None, source_port: str=None, target_node: str=None, link_id: str=None, source_node: str=None): # noqa: E501 + """TopologyLink - a model defined in Swagger + + :param target_port: The target_port of this TopologyLink. # noqa: E501 + :type target_port: str + :param source_port: The source_port of this TopologyLink. # noqa: E501 + :type source_port: str + :param target_node: The target_node of this TopologyLink. # noqa: E501 + :type target_node: str + :param link_id: The link_id of this TopologyLink. # noqa: E501 + :type link_id: str + :param source_node: The source_node of this TopologyLink. # noqa: E501 + :type source_node: str + """ + self.swagger_types = { + 'target_port': str, + 'source_port': str, + 'target_node': str, + 'link_id': str, + 'source_node': str + } + + self.attribute_map = { + 'target_port': 'target-port', + 'source_port': 'source-port', + 'target_node': 'target-node', + 'link_id': 'link-id', + 'source_node': 'source-node' + } + self._target_port = target_port + self._source_port = source_port + self._target_node = target_node + self._link_id = link_id + self._source_node = source_node + + @classmethod + def from_dict(cls, dikt) -> 'TopologyLink': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.Link of this TopologyLink. # noqa: E501 + :rtype: TopologyLink + """ + return util.deserialize_model(dikt, cls) + + @property + def target_port(self) -> str: + """Gets the target_port of this TopologyLink. + + + :return: The target_port of this TopologyLink. + :rtype: str + """ + return self._target_port + + @target_port.setter + def target_port(self, target_port: str): + """Sets the target_port of this TopologyLink. + + + :param target_port: The target_port of this TopologyLink. + :type target_port: str + """ + + self._target_port = target_port + + @property + def source_port(self) -> str: + """Gets the source_port of this TopologyLink. + + + :return: The source_port of this TopologyLink. + :rtype: str + """ + return self._source_port + + @source_port.setter + def source_port(self, source_port: str): + """Sets the source_port of this TopologyLink. + + + :param source_port: The source_port of this TopologyLink. + :type source_port: str + """ + + self._source_port = source_port + + @property + def target_node(self) -> str: + """Gets the target_node of this TopologyLink. + + + :return: The target_node of this TopologyLink. + :rtype: str + """ + return self._target_node + + @target_node.setter + def target_node(self, target_node: str): + """Sets the target_node of this TopologyLink. + + + :param target_node: The target_node of this TopologyLink. + :type target_node: str + """ + + self._target_node = target_node + + @property + def link_id(self) -> str: + """Gets the link_id of this TopologyLink. + + + :return: The link_id of this TopologyLink. + :rtype: str + """ + return self._link_id + + @link_id.setter + def link_id(self, link_id: str): + """Sets the link_id of this TopologyLink. + + + :param link_id: The link_id of this TopologyLink. + :type link_id: str + """ + + self._link_id = link_id + + @property + def source_node(self) -> str: + """Gets the source_node of this TopologyLink. + + + :return: The source_node of this TopologyLink. + :rtype: str + """ + return self._source_node + + @source_node.setter + def source_node(self, source_node: str): + """Sets the source_node of this TopologyLink. + + + :param source_node: The source_node of this TopologyLink. + :type source_node: str + """ + + self._source_node = source_node diff --git a/hackfest/restconf/topologyserver/swagger_server/models/topology_node.py b/hackfest/restconf/topologyserver/swagger_server/models/topology_node.py new file mode 100644 index 0000000000000000000000000000000000000000..811038a0c5876b6e46f0555866bf46af71930f75 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/topology_node.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server.models.topology_port import TopologyPort # noqa: F401,E501 +from swagger_server import util + + +class TopologyNode(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_id: str=None, port: List[TopologyPort]=None): # noqa: E501 + """TopologyNode - a model defined in Swagger + + :param node_id: The node_id of this TopologyNode. # noqa: E501 + :type node_id: str + :param port: The port of this TopologyNode. # noqa: E501 + :type port: List[TopologyPort] + """ + self.swagger_types = { + 'node_id': str, + 'port': List[TopologyPort] + } + + self.attribute_map = { + 'node_id': 'node-id', + 'port': 'port' + } + self._node_id = node_id + self._port = port + + @classmethod + def from_dict(cls, dikt) -> 'TopologyNode': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.Node of this TopologyNode. # noqa: E501 + :rtype: TopologyNode + """ + return util.deserialize_model(dikt, cls) + + @property + def node_id(self) -> str: + """Gets the node_id of this TopologyNode. + + + :return: The node_id of this TopologyNode. + :rtype: str + """ + return self._node_id + + @node_id.setter + def node_id(self, node_id: str): + """Sets the node_id of this TopologyNode. + + + :param node_id: The node_id of this TopologyNode. + :type node_id: str + """ + + self._node_id = node_id + + @property + def port(self) -> List[TopologyPort]: + """Gets the port of this TopologyNode. + + + :return: The port of this TopologyNode. + :rtype: List[TopologyPort] + """ + return self._port + + @port.setter + def port(self, port: List[TopologyPort]): + """Sets the port of this TopologyNode. + + + :param port: The port of this TopologyNode. + :type port: List[TopologyPort] + """ + + self._port = port diff --git a/hackfest/restconf/topologyserver/swagger_server/models/topology_port.py b/hackfest/restconf/topologyserver/swagger_server/models/topology_port.py new file mode 100644 index 0000000000000000000000000000000000000000..7f6431baa9db534a2775171702db1c34cefcad15 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/topology_port.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server.models.topology_layer_protocol_name import TopologyLayerProtocolName # noqa: F401,E501 +from swagger_server import util + + +class TopologyPort(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, layer_protocol_name: TopologyLayerProtocolName=None, port_id: str=None): # noqa: E501 + """TopologyPort - a model defined in Swagger + + :param layer_protocol_name: The layer_protocol_name of this TopologyPort. # noqa: E501 + :type layer_protocol_name: TopologyLayerProtocolName + :param port_id: The port_id of this TopologyPort. # noqa: E501 + :type port_id: str + """ + self.swagger_types = { + 'layer_protocol_name': TopologyLayerProtocolName, + 'port_id': str + } + + self.attribute_map = { + 'layer_protocol_name': 'layer-protocol-name', + 'port_id': 'port-id' + } + self._layer_protocol_name = layer_protocol_name + self._port_id = port_id + + @classmethod + def from_dict(cls, dikt) -> 'TopologyPort': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.Port of this TopologyPort. # noqa: E501 + :rtype: TopologyPort + """ + return util.deserialize_model(dikt, cls) + + @property + def layer_protocol_name(self) -> TopologyLayerProtocolName: + """Gets the layer_protocol_name of this TopologyPort. + + + :return: The layer_protocol_name of this TopologyPort. + :rtype: TopologyLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TopologyLayerProtocolName): + """Sets the layer_protocol_name of this TopologyPort. + + + :param layer_protocol_name: The layer_protocol_name of this TopologyPort. + :type layer_protocol_name: TopologyLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def port_id(self) -> str: + """Gets the port_id of this TopologyPort. + + + :return: The port_id of this TopologyPort. + :rtype: str + """ + return self._port_id + + @port_id.setter + def port_id(self, port_id: str): + """Sets the port_id of this TopologyPort. + + + :param port_id: The port_id of this TopologyPort. + :type port_id: str + """ + + self._port_id = port_id diff --git a/hackfest/restconf/topologyserver/swagger_server/models/topology_topology.py b/hackfest/restconf/topologyserver/swagger_server/models/topology_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..5f90f6fa52aade6732fdf9c0949b31e1550a6541 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/models/topology_topology.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from swagger_server.models.base_model_ import Model +from swagger_server.models.topology_link import TopologyLink # noqa: F401,E501 +from swagger_server.models.topology_node import TopologyNode # noqa: F401,E501 +from swagger_server import util + + +class TopologyTopology(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, link: List[TopologyLink]=None, node: List[TopologyNode]=None): # noqa: E501 + """TopologyTopology - a model defined in Swagger + + :param link: The link of this TopologyTopology. # noqa: E501 + :type link: List[TopologyLink] + :param node: The node of this TopologyTopology. # noqa: E501 + :type node: List[TopologyNode] + """ + self.swagger_types = { + 'link': List[TopologyLink], + 'node': List[TopologyNode] + } + + self.attribute_map = { + 'link': 'link', + 'node': 'node' + } + self._link = link + self._node = node + + @classmethod + def from_dict(cls, dikt) -> 'TopologyTopology': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The topology.Topology of this TopologyTopology. # noqa: E501 + :rtype: TopologyTopology + """ + return util.deserialize_model(dikt, cls) + + @property + def link(self) -> List[TopologyLink]: + """Gets the link of this TopologyTopology. + + + :return: The link of this TopologyTopology. + :rtype: List[TopologyLink] + """ + return self._link + + @link.setter + def link(self, link: List[TopologyLink]): + """Sets the link of this TopologyTopology. + + + :param link: The link of this TopologyTopology. + :type link: List[TopologyLink] + """ + + self._link = link + + @property + def node(self) -> List[TopologyNode]: + """Gets the node of this TopologyTopology. + + + :return: The node of this TopologyTopology. + :rtype: List[TopologyNode] + """ + return self._node + + @node.setter + def node(self, node: List[TopologyNode]): + """Sets the node of this TopologyTopology. + + + :param node: The node of this TopologyTopology. + :type node: List[TopologyNode] + """ + + self._node = node diff --git a/hackfest/restconf/topologyserver/swagger_server/swagger/swagger.yaml b/hackfest/restconf/topologyserver/swagger_server/swagger/swagger.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c359192088f24b3ec2fbde3a433519b7fbf1cfa7 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/swagger/swagger.yaml @@ -0,0 +1,592 @@ +openapi: 3.0.1 +info: + title: topology API + description: topology API generated from yang definitions + version: "1.0" +servers: +- url: //localhost:1234/ +paths: + /data/topology/: + get: + tags: + - topology + description: returns topology.Topology + operationId: data_topology_get + responses: + 200: + description: topology.Topology + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Topology' + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + put: + tags: + - topology + description: creates or updates topology.Topology + operationId: data_topology_put + requestBody: + description: topology.Topology to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Topology' + required: false + responses: + 201: + description: Object created + content: {} + 204: + description: Object modified + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + post: + tags: + - topology + description: creates topology.Topology + operationId: data_topology_post + requestBody: + description: topology.Topology to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Topology' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + delete: + tags: + - topology + description: removes topology.Topology + operationId: data_topology_delete + responses: + 204: + description: Object deleted + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/link/: + post: + tags: + - topology + description: creates topology.Link + operationId: data_topology_link_post + requestBody: + description: topology.Link to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Link' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/link={link-id}/: + get: + tags: + - topology + description: returns topology.Link + operationId: data_topology_linklink_id_get + parameters: + - name: link-id + in: path + description: Id of link + required: true + schema: + type: string + responses: + 200: + description: topology.Link + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Link' + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + put: + tags: + - topology + description: creates or updates topology.Link + operationId: data_topology_linklink_id_put + parameters: + - name: link-id + in: path + description: Id of link + required: true + schema: + type: string + requestBody: + description: topology.Link to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Link' + required: false + responses: + 201: + description: Object created + content: {} + 204: + description: Object modified + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + post: + tags: + - topology + description: creates topology.Link + operationId: data_topology_linklink_id_post + parameters: + - name: link-id + in: path + description: Id of link + required: true + schema: + type: string + requestBody: + description: topology.Link to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Link' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + delete: + tags: + - topology + description: removes topology.Link + operationId: data_topology_linklink_id_delete + parameters: + - name: link-id + in: path + description: Id of link + required: true + schema: + type: string + responses: + 204: + description: Object deleted + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/node/: + post: + tags: + - topology + description: creates topology.Node + operationId: data_topology_node_post + requestBody: + description: topology.Node to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Node' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/node={node-id}/: + get: + tags: + - topology + description: returns topology.Node + operationId: data_topology_nodenode_id_get + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + responses: + 200: + description: topology.Node + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Node' + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + put: + tags: + - topology + description: creates or updates topology.Node + operationId: data_topology_nodenode_id_put + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + requestBody: + description: topology.Node to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Node' + required: false + responses: + 201: + description: Object created + content: {} + 204: + description: Object modified + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + post: + tags: + - topology + description: creates topology.Node + operationId: data_topology_nodenode_id_post + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + requestBody: + description: topology.Node to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Node' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + delete: + tags: + - topology + description: removes topology.Node + operationId: data_topology_nodenode_id_delete + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + responses: + 204: + description: Object deleted + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/node={node-id}/port/: + post: + tags: + - topology + description: creates topology.Port + operationId: data_topology_nodenode_id_port_post + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + requestBody: + description: topology.Port to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Port' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + /data/topology/node={node-id}/port={port-id}/: + get: + tags: + - topology + description: returns topology.Port + operationId: data_topology_nodenode_id_portport_id_get + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + - name: port-id + in: path + description: Id of port + required: true + schema: + type: string + responses: + 200: + description: topology.Port + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Port' + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + put: + tags: + - topology + description: creates or updates topology.Port + operationId: data_topology_nodenode_id_portport_id_put + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + - name: port-id + in: path + description: Id of port + required: true + schema: + type: string + requestBody: + description: topology.Port to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Port' + required: false + responses: + 201: + description: Object created + content: {} + 204: + description: Object modified + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + post: + tags: + - topology + description: creates topology.Port + operationId: data_topology_nodenode_id_portport_id_post + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + - name: port-id + in: path + description: Id of port + required: true + schema: + type: string + requestBody: + description: topology.Port to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/topology.Port' + required: false + responses: + 201: + description: Object created + content: {} + 400: + description: Internal error + content: {} + 409: + description: Object already exists + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller + delete: + tags: + - topology + description: removes topology.Port + operationId: data_topology_nodenode_id_portport_id_delete + parameters: + - name: node-id + in: path + description: Id of node + required: true + schema: + type: string + - name: port-id + in: path + description: Id of port + required: true + schema: + type: string + responses: + 204: + description: Object deleted + content: {} + 400: + description: Internal error + content: {} + x-openapi-router-controller: swagger_server.controllers.topology_controller +components: + schemas: + topology.LayerProtocolName: + type: string + enum: + - ETH + - OPTICAL + topology.Link: + type: object + properties: + target-port: + type: string + x-path: /topology/node/port/port-id + source-port: + type: string + x-path: /topology/node/port/port-id + target-node: + type: string + x-path: /topology/node/node-id + link-id: + type: string + source-node: + type: string + x-path: /topology/node/node-id + example: + target-port: target-port + source-port: source-port + target-node: target-node + link-id: link-id + source-node: source-node + topology.Node: + type: object + properties: + node-id: + type: string + port: + type: array + items: + $ref: '#/components/schemas/topology.Port' + example: + node-id: node-id + port: + - layer-protocol-name: ETH + port-id: port-id + - layer-protocol-name: ETH + port-id: port-id + topology.Port: + type: object + properties: + layer-protocol-name: + $ref: '#/components/schemas/topology.LayerProtocolName' + port-id: + type: string + example: + layer-protocol-name: ETH + port-id: port-id + topology.Topology: + type: object + properties: + link: + type: array + items: + $ref: '#/components/schemas/topology.Link' + node: + type: array + items: + $ref: '#/components/schemas/topology.Node' + example: + node: + - node-id: node-id + port: + - layer-protocol-name: ETH + port-id: port-id + - layer-protocol-name: ETH + port-id: port-id + - node-id: node-id + port: + - layer-protocol-name: ETH + port-id: port-id + - layer-protocol-name: ETH + port-id: port-id + link: + - target-port: target-port + source-port: source-port + target-node: target-node + link-id: link-id + source-node: source-node + - target-port: target-port + source-port: source-port + target-node: target-node + link-id: link-id + source-node: source-node + diff --git a/hackfest/restconf/topologyserver/swagger_server/test/__init__.py b/hackfest/restconf/topologyserver/swagger_server/test/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..644506301ce077f2e881fcda3454b6cba362ab5e --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/test/__init__.py @@ -0,0 +1,16 @@ +import logging + +import connexion +from flask_testing import TestCase + +from swagger_server.encoder import JSONEncoder + + +class BaseTestCase(TestCase): + + def create_app(self): + logging.getLogger('connexion.operation').setLevel('ERROR') + app = connexion.App(__name__, specification_dir='../swagger/') + app.app.json_encoder = JSONEncoder + app.add_api('swagger.yaml') + return app.app diff --git a/hackfest/restconf/topologyserver/swagger_server/test/test_topology_controller.py b/hackfest/restconf/topologyserver/swagger_server/test/test_topology_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..69c6a2fa734c174df514d09a58c6db25be4b63c3 --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/test/test_topology_controller.py @@ -0,0 +1,263 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from swagger_server.models.topology_link import TopologyLink # noqa: E501 +from swagger_server.models.topology_node import TopologyNode # noqa: E501 +from swagger_server.models.topology_port import TopologyPort # noqa: E501 +from swagger_server.models.topology_topology import TopologyTopology # noqa: E501 +from swagger_server.test import BaseTestCase + + +class TestTopologyController(BaseTestCase): + """TopologyController integration test stubs""" + + def test_data_topology_delete(self): + """Test case for data_topology_delete + + + """ + response = self.client.open( + '/data/topology/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_get(self): + """Test case for data_topology_get + + + """ + response = self.client.open( + '/data/topology/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_link_post(self): + """Test case for data_topology_link_post + + + """ + body = TopologyLink() + response = self.client.open( + '/data/topology/link/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_linklink_id_delete(self): + """Test case for data_topology_linklink_id_delete + + + """ + response = self.client.open( + '/data/topology/link={link-id}/'.format(link_id='link_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_linklink_id_get(self): + """Test case for data_topology_linklink_id_get + + + """ + response = self.client.open( + '/data/topology/link={link-id}/'.format(link_id='link_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_linklink_id_post(self): + """Test case for data_topology_linklink_id_post + + + """ + body = TopologyLink() + response = self.client.open( + '/data/topology/link={link-id}/'.format(link_id='link_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_linklink_id_put(self): + """Test case for data_topology_linklink_id_put + + + """ + body = TopologyLink() + response = self.client.open( + '/data/topology/link={link-id}/'.format(link_id='link_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_node_post(self): + """Test case for data_topology_node_post + + + """ + body = TopologyNode() + response = self.client.open( + '/data/topology/node/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_delete(self): + """Test case for data_topology_nodenode_id_delete + + + """ + response = self.client.open( + '/data/topology/node={node-id}/'.format(node_id='node_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_get(self): + """Test case for data_topology_nodenode_id_get + + + """ + response = self.client.open( + '/data/topology/node={node-id}/'.format(node_id='node_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_port_post(self): + """Test case for data_topology_nodenode_id_port_post + + + """ + body = TopologyPort() + response = self.client.open( + '/data/topology/node={node-id}/port/'.format(node_id='node_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_portport_id_delete(self): + """Test case for data_topology_nodenode_id_portport_id_delete + + + """ + response = self.client.open( + '/data/topology/node={node-id}/port={port-id}/'.format(node_id='node_id_example', port_id='port_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_portport_id_get(self): + """Test case for data_topology_nodenode_id_portport_id_get + + + """ + response = self.client.open( + '/data/topology/node={node-id}/port={port-id}/'.format(node_id='node_id_example', port_id='port_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_portport_id_post(self): + """Test case for data_topology_nodenode_id_portport_id_post + + + """ + body = TopologyPort() + response = self.client.open( + '/data/topology/node={node-id}/port={port-id}/'.format(node_id='node_id_example', port_id='port_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_portport_id_put(self): + """Test case for data_topology_nodenode_id_portport_id_put + + + """ + body = TopologyPort() + response = self.client.open( + '/data/topology/node={node-id}/port={port-id}/'.format(node_id='node_id_example', port_id='port_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_post(self): + """Test case for data_topology_nodenode_id_post + + + """ + body = TopologyNode() + response = self.client.open( + '/data/topology/node={node-id}/'.format(node_id='node_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_nodenode_id_put(self): + """Test case for data_topology_nodenode_id_put + + + """ + body = TopologyNode() + response = self.client.open( + '/data/topology/node={node-id}/'.format(node_id='node_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_post(self): + """Test case for data_topology_post + + + """ + body = TopologyTopology() + response = self.client.open( + '/data/topology/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_topology_put(self): + """Test case for data_topology_put + + + """ + body = TopologyTopology() + response = self.client.open( + '/data/topology/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/restconf/topologyserver/swagger_server/util.py b/hackfest/restconf/topologyserver/swagger_server/util.py new file mode 100644 index 0000000000000000000000000000000000000000..527d1424c3d5563073b18b4da1a9904b2cb6b62b --- /dev/null +++ b/hackfest/restconf/topologyserver/swagger_server/util.py @@ -0,0 +1,141 @@ +import datetime + +import six +import typing + + +def _deserialize(data, klass): + """Deserializes dict, list, str into an object. + + :param data: dict, list or str. + :param klass: class literal, or string of class name. + + :return: object. + """ + if data is None: + return None + + if klass in six.integer_types or klass in (float, str, bool): + return _deserialize_primitive(data, klass) + elif klass == object: + return _deserialize_object(data) + elif klass == datetime.date: + return deserialize_date(data) + elif klass == datetime.datetime: + return deserialize_datetime(data) + elif type(klass) == typing.GenericMeta: + if klass.__extra__ == list: + return _deserialize_list(data, klass.__args__[0]) + if klass.__extra__ == dict: + return _deserialize_dict(data, klass.__args__[1]) + else: + return deserialize_model(data, klass) + + +def _deserialize_primitive(data, klass): + """Deserializes to primitive type. + + :param data: data to deserialize. + :param klass: class literal. + + :return: int, long, float, str, bool. + :rtype: int | long | float | str | bool + """ + try: + value = klass(data) + except UnicodeEncodeError: + value = six.u(data) + except TypeError: + value = data + return value + + +def _deserialize_object(value): + """Return a original value. + + :return: object. + """ + return value + + +def deserialize_date(string): + """Deserializes string to date. + + :param string: str. + :type string: str + :return: date. + :rtype: date + """ + try: + from dateutil.parser import parse + return parse(string).date() + except ImportError: + return string + + +def deserialize_datetime(string): + """Deserializes string to datetime. + + The string should be in iso8601 datetime format. + + :param string: str. + :type string: str + :return: datetime. + :rtype: datetime + """ + try: + from dateutil.parser import parse + return parse(string) + except ImportError: + return string + + +def deserialize_model(data, klass): + """Deserializes list or dict to model. + + :param data: dict, list. + :type data: dict | list + :param klass: class literal. + :return: model object. + """ + instance = klass() + + if not instance.swagger_types: + return data + + for attr, attr_type in six.iteritems(instance.swagger_types): + if data is not None \ + and instance.attribute_map[attr] in data \ + and isinstance(data, (list, dict)): + value = data[instance.attribute_map[attr]] + setattr(instance, attr, _deserialize(value, attr_type)) + + return instance + + +def _deserialize_list(data, boxed_type): + """Deserializes a list and its elements. + + :param data: list to deserialize. + :type data: list + :param boxed_type: class literal. + + :return: deserialized list. + :rtype: list + """ + return [_deserialize(sub_data, boxed_type) + for sub_data in data] + + +def _deserialize_dict(data, boxed_type): + """Deserializes a dict and its elements. + + :param data: dict to deserialize. + :type data: dict + :param boxed_type: class literal. + + :return: deserialized dict. + :rtype: dict + """ + return {k: _deserialize(v, boxed_type) + for k, v in six.iteritems(data)} diff --git a/hackfest/restconf/topologyserver/test-requirements.txt b/hackfest/restconf/topologyserver/test-requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..7f8d96e6b40e853d658f88fa745ddcf37ff7644c --- /dev/null +++ b/hackfest/restconf/topologyserver/test-requirements.txt @@ -0,0 +1,6 @@ +flask_testing==0.6.1 +coverage>=4.0.3 +nose>=1.3.7 +pluggy>=0.3.1 +py>=1.4.31 +randomize>=0.13 diff --git a/hackfest/restconf/topologyserver/tox.ini b/hackfest/restconf/topologyserver/tox.ini new file mode 100644 index 0000000000000000000000000000000000000000..3e0b644eec48f0d6d63f028c28315ca0eda5896f --- /dev/null +++ b/hackfest/restconf/topologyserver/tox.ini @@ -0,0 +1,10 @@ +[tox] +envlist = py35 + +[testenv] +deps=-r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +commands= + nosetests \ + [] \ No newline at end of file diff --git a/hackfest/tapi/client/cs1.json b/hackfest/tapi/client/cs1.json new file mode 100644 index 0000000000000000000000000000000000000000..06290e137a280bb01b9de5adf98c4aaa9b73c122 --- /dev/null +++ b/hackfest/tapi/client/cs1.json @@ -0,0 +1,28 @@ +{ + "tapi-connectivity:connectivity-service": [ + { + "uuid" : "cs1", + "service-type":"POINT_TO_POINT_CONNECTIVITY", + "connectivity-constraint": { + "requested-capacity": {"total-size": { "value": "50", "unit": "GHz" }}, + "connectivity-direction": "UNIDIRECTIONAL" + }, + "end-point": [ + { + "local-id": "csep-1", + "layer-protocol-name": "PHOTONIC_MEDIA", + "service-interface-point": { + "service-interface-point-uuid": "node-1-port-13-input" + } + }, + { + "local-id":"csep-2", + "layer-protocol-name":"PHOTONIC_MEDIA", + "service-interface-point": { + "service-interface-point-uuid": "node-2-port-14-output" + } + } + ] + } + ] +} diff --git a/hackfest/tapi/client/tapi-client.sh b/hackfest/tapi/client/tapi-client.sh new file mode 100755 index 0000000000000000000000000000000000000000..a591a2006b06e9dcc6f13b85d9ff870bdca0c359 --- /dev/null +++ b/hackfest/tapi/client/tapi-client.sh @@ -0,0 +1,51 @@ +#Example CURL for TAPI 2.0 + +#Get Context +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/ + +#Get Service Interface Points +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/service-interface-point/ + +#Get SIP sip-pe1-uni1 +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/service-interface-point/sip-pe1-uni1/ + +#Get topologies +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/ + +#Get topology topo-nwk +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/ + +#Get nodes +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/node/ + +#Get node 1 +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/node/node-pe-1/ + +#Get NEP list +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/node/node-pe-1/owned-node-edge-point/ + +#Get NEP NEP_PE_01_UNI1 +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/node/node-pe-1/owned-node-edge-point/NEP_PE_01_UNI1/ + +#Get links +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/link/ + +#Get link 1-3 +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/topology/topo-nwk/link/PE1_NNI3_PI3_NNI1/ + +#Create Connectivity Service +curl -X POST -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/connectivity-service/cs1/ -d @cs1.json + +#Get Connectivity Services +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/connectivity-service/ + +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/connectivity-service/cs1/ + +#Get connection +curl -X GET -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/connection/cs1/ + +#Delete Connectivity Services +curl -X DELETE -H "Content-Type: application/json" http://127.0.0.1:8080/restconf/config/context/connectivity-service/cs1/ + + + diff --git a/hackfest/tapi/codegen-config.json b/hackfest/tapi/codegen-config.json new file mode 100644 index 0000000000000000000000000000000000000000..be1ca6ac0958b42ec611cf9ff1a5cc228e4e7273 --- /dev/null +++ b/hackfest/tapi/codegen-config.json @@ -0,0 +1,4 @@ +{ + "packageName": "tapi_server", + "packageVersion": "2.1.3" +} diff --git a/hackfest/tapi/server/.dockerignore b/hackfest/tapi/server/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..cdd823e64e7e91ae85da84f22410ecb7eb370ae2 --- /dev/null +++ b/hackfest/tapi/server/.dockerignore @@ -0,0 +1,72 @@ +.travis.yaml +.swagger-codegen-ignore +README.md +tox.ini +git_push.sh +test-requirements.txt +setup.py + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/tapi/server/.gitignore b/hackfest/tapi/server/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a655050c2631466828b5b8bfc59ae27f9ac02dc5 --- /dev/null +++ b/hackfest/tapi/server/.gitignore @@ -0,0 +1,64 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ +venv/ +.python-version + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +#Ipython Notebook +.ipynb_checkpoints diff --git a/hackfest/tapi/server/.swagger-codegen-ignore b/hackfest/tapi/server/.swagger-codegen-ignore new file mode 100644 index 0000000000000000000000000000000000000000..c5fa491b4c557bf997d5dd21797de782545dc9e5 --- /dev/null +++ b/hackfest/tapi/server/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/hackfest/tapi/server/.swagger-codegen/VERSION b/hackfest/tapi/server/.swagger-codegen/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..053a355ae8764725498657904f6aa8f694204d4a --- /dev/null +++ b/hackfest/tapi/server/.swagger-codegen/VERSION @@ -0,0 +1 @@ +3.0.35 \ No newline at end of file diff --git a/hackfest/tapi/server/.travis.yml b/hackfest/tapi/server/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..dd6c4450aa902ae68479c3d76d45145e18d6052e --- /dev/null +++ b/hackfest/tapi/server/.travis.yml @@ -0,0 +1,13 @@ +# ref: https://docs.travis-ci.com/user/languages/python +language: python +python: + - "3.2" + - "3.3" + - "3.4" + - "3.5" + #- "3.5-dev" # 3.5 development branch + #- "nightly" # points to the latest development branch e.g. 3.6-dev +# command to install dependencies +install: "pip install -r requirements.txt" +# command to run tests +script: nosetests diff --git a/hackfest/tapi/server/Acknowledgements.txt b/hackfest/tapi/server/Acknowledgements.txt new file mode 100644 index 0000000000000000000000000000000000000000..288a31e12df8aef0f2c8098c64a2f48b9fc11faf --- /dev/null +++ b/hackfest/tapi/server/Acknowledgements.txt @@ -0,0 +1,3 @@ +# [Ref-1]: https://github.com/OpenNetworkingFoundation/TAPI +# [Ref-2]: https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.3/YANG +# [Ref-3]: https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/RI diff --git a/hackfest/tapi/server/Dockerfile b/hackfest/tapi/server/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c9fdfe31e488e27eb023f38f521d65dc0896b11f --- /dev/null +++ b/hackfest/tapi/server/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.6-alpine + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +COPY requirements.txt /usr/src/app/ + +RUN pip3 install --no-cache-dir -r requirements.txt + +COPY . /usr/src/app + +EXPOSE 8080 + +ENTRYPOINT ["python3"] + +CMD ["-m", "tapi_server"] \ No newline at end of file diff --git a/hackfest/tapi/server/README.md b/hackfest/tapi/server/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3ddda50fb38fe89c346c95bc08914665da155a19 --- /dev/null +++ b/hackfest/tapi/server/README.md @@ -0,0 +1,49 @@ +# Swagger generated server + +## Overview +This server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the +[OpenAPI-Spec](https://github.com/swagger-api/swagger-core/wiki) from a remote server, you can easily generate a server stub. This +is an example of building a swagger-enabled Flask server. + +This example uses the [Connexion](https://github.com/zalando/connexion) library on top of Flask. + +## Requirements +Python 3.5.2+ + +## Usage +To run the server, please execute the following from the root directory: + +``` +pip3 install -r requirements.txt +python3 -m tapi_server +``` + +and open your browser to here: + +``` +http://localhost:8080/ui/ +``` + +Your Swagger definition lives here: + +``` +http://localhost:8080/swagger.json +``` + +To launch the integration tests, use tox: +``` +sudo pip install tox +tox +``` + +## Running with Docker + +To run the server on a Docker container, please execute the following from the root directory: + +```bash +# building the image +docker build -t tapi_server . + +# starting up a container +docker run -p 8080:8080 tapi_server +``` \ No newline at end of file diff --git a/hackfest/tapi/server/git_push.sh b/hackfest/tapi/server/git_push.sh new file mode 100644 index 0000000000000000000000000000000000000000..160f6f213999c7ae67839fbd6fc2ba0b72675832 --- /dev/null +++ b/hackfest/tapi/server/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/hackfest/tapi/server/requirements.txt b/hackfest/tapi/server/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..62c7fffac8b5bc20011c481e6ae3601eca6d4a08 --- /dev/null +++ b/hackfest/tapi/server/requirements.txt @@ -0,0 +1,5 @@ +connexion >= 2.6.0 +connexion[swagger-ui] >= 2.6.0 +python_dateutil == 2.6.0 +setuptools >= 21.0.0 +swagger-ui-bundle >= 0.0.2 diff --git a/hackfest/tapi/server/run.sh b/hackfest/tapi/server/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..6b69692172b14f2fec299f88fa914be2eb811c01 --- /dev/null +++ b/hackfest/tapi/server/run.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +python3 -m tapi_server 8080 database/mini-ols-context.json diff --git a/hackfest/tapi/server/setup.py b/hackfest/tapi/server/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..eaf66f499a8e6311a6b5ea1946b6448b1144388b --- /dev/null +++ b/hackfest/tapi/server/setup.py @@ -0,0 +1,36 @@ +# coding: utf-8 + +import sys +from setuptools import setup, find_packages + +NAME = "tapi_server" +VERSION = "2.1.3" +# To install the library, run the following +# +# python setup.py install +# +# prerequisite: setuptools +# http://pypi.python.org/pypi/setuptools + +REQUIRES = [ + "connexion", + "swagger-ui-bundle>=0.0.2" +] + +setup( + name=NAME, + version=VERSION, + description="tapi-notification,tapi-connectivity,tapi-topology,tapi-common,tapi-path-computation API", + author_email="", + url="", + keywords=["Swagger", "tapi-notification,tapi-connectivity,tapi-topology,tapi-common,tapi-path-computation API"], + install_requires=REQUIRES, + packages=find_packages(), + package_data={'': ['swagger/swagger.yaml']}, + include_package_data=True, + entry_points={ + 'console_scripts': ['tapi_server=tapi_server.__main__:main']}, + long_description="""\ + This module contains TAPI Notification Model definitions. Source: TapiNotification.uml - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G4QHf0bG$ > and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G8IIivez$ > - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. The YANG model backward compatibility criteria are outlined in section 11 of <https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7950__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6G3bKxRf2$ >. YANG models included in this release may not be backward compatible with previous TAPI releases. Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0, This module contains TAPI Connectivity Model definitions. Source: TapiConnectivity.uml - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_6pxiNxl$ > and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_wxKUbJ_$ > - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. The YANG model backward compatibility criteria are outlined in section 11 of <https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7950__;!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_zcAY1P4$ >. YANG models included in this release may not be backward compatible with previous TAPI releases. Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0., This module contains TAPI Topology Model definitions. Source: TapiTopology.uml - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] <https://urldefense.com/v3/__https://github.com/OpenNetworkingFoundation/EagleUmlYang__;!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_6pxiNxl$ > and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OIMT/UML*-*YANG*Guidelines__;Kysr!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_wxKUbJ_$ > - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. The YANG model backward compatibility criteria are outlined in section 11 of <https://urldefense.com/v3/__https://tools.ietf.org/html/rfc7950__;!!OSsGDw!bx-l35NqfQHpJ8R_DmXfi2NX2ll5dMl9VbK5aS_m3ZShiVoz74Ur_zcAY1P4$ >. YANG models included in this release may not be backward compatible with previous TAPI releases. Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0., This module contains TAPI Common Model definitions. Source: TapiCommon.uml - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] <https://github.com/OpenNetworkingFoundation/EagleUmlYang> and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines> - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>. YANG models included in this release may not be backward compatible with previous TAPI releases. Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0., This module contains TAPI Path Computation Model definitions. Source: TapiPathComputation.uml - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK. - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool] <https://github.com/OpenNetworkingFoundation/EagleUmlYang> and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines] <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines> - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts. As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts. - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases. The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>. YANG models included in this release may not be backward compatible with previous TAPI releases. Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved. License: This module is distributed under the Apache License 2.0. + """ +) diff --git a/hackfest/tapi/server/tapi_server/__init__.py b/hackfest/tapi/server/tapi_server/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/tapi/server/tapi_server/__main__.py b/hackfest/tapi/server/tapi_server/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..580c6f80f08d0d9d08d64c14ab8296165bfdb0bb --- /dev/null +++ b/hackfest/tapi/server/tapi_server/__main__.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +import connexion +import json +import sys + +from flask import current_app +from tapi_server import encoder +from tapi_server.models.tapi_common_context import TapiCommonContext +from tapi_server import database + + +def main(): + app = connexion.App(__name__, specification_dir='./swagger/') + app.app.json_encoder = encoder.JSONEncoder + app.add_api('swagger.yaml', + arguments={'title': 'tapi-notification,tapi-connectivity,tapi-topology,tapi-common,tapi-path-computation API'}, + base_path='/restconf', + pythonic_params=True) + with app.app.app_context(): + with current_app.open_resource(sys.argv[2], 'r') as f: + data = json.load(f) + database.context = TapiCommonContext.from_dict(data) + app.run(port=sys.argv[1]) + +if __name__ == '__main__': + main() diff --git a/hackfest/tapi/server/tapi_server/controllers/__init__.py b/hackfest/tapi/server/tapi_server/controllers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/hackfest/tapi/server/tapi_server/controllers/authorization_controller.py b/hackfest/tapi/server/tapi_server/controllers/authorization_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2f7b0bb3e281b3fb9efb588dfc8ba4c8cc3a59ed --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/authorization_controller.py @@ -0,0 +1,6 @@ +from typing import List +""" +controller generated to handled auth operation described at: +https://connexion.readthedocs.io/en/latest/security.html +""" + diff --git a/hackfest/tapi/server/tapi_server/controllers/tapi_common_controller.py b/hackfest/tapi/server/tapi_server/controllers/tapi_common_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..e6ad1e658b5a8300613882ca23e8bb5a0c4f4980 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/tapi_common_controller.py @@ -0,0 +1,477 @@ +import connexion +import six + +from tapi_server.models.operations_tapicommongetserviceinterfacepointdetails_body import OperationsTapicommongetserviceinterfacepointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapicommonupdateserviceinterfacepoint_body import OperationsTapicommonupdateserviceinterfacepointBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_context_wrapper import TapiCommonContextWrapper # noqa: E501 +from tapi_server.models.tapi_common_get_service_interface_point_details import TapiCommonGetServiceInterfacePointDetails # noqa: E501 +from tapi_server.models.tapi_common_get_service_interface_point_list import TapiCommonGetServiceInterfacePointList # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_wrapper import TapiCommonServiceInterfacePointWrapper # noqa: E501 +from tapi_server import util + +from tapi_server.models.tapi_common_getserviceinterfacepointdetails_output import TapiCommonGetserviceinterfacepointdetailsOutput +from tapi_server.models.tapi_common_getserviceinterfacepointlist_output import TapiCommonGetserviceinterfacepointlistOutput +from tapi_server import database + + +def data_tapi_commoncontext_delete(): # noqa: E501 + """removes tapi.common.Context + + none # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_get(): # noqa: E501 + """returns tapi.common.Context + + none # noqa: E501 + + + :rtype: TapiCommonContextWrapper + """ + return database.context + + +def data_tapi_commoncontext_name_post(body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_namevalue_name_delete(value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_namevalue_name_get(value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_namevalue_name_put(value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_post(body=None): # noqa: E501 + """creates tapi.common.Context + + none # noqa: E501 + + :param body: tapi.common.Context to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_put(body=None): # noqa: E501 + """creates or updates tapi.common.Context + + none # noqa: E501 + + :param body: tapi.common.Context to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_point_post(body=None): # noqa: E501 + """creates tapi.common.ServiceInterfacePoint + + none # noqa: E501 + + :param body: tapi.common.ServiceInterfacePoint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_get(uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_get(uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_available_capacity_total_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_delete(uuid): # noqa: E501 + """removes tapi.common.ServiceInterfacePoint + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_get(uuid): # noqa: E501 + """returns tapi.common.ServiceInterfacePoint + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonServiceInterfacePointWrapper + """ + return database.service_interface_point(uuid) + + +def data_tapi_commoncontext_service_interface_pointuuid_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.ServiceInterfacePoint + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + :param body: tapi.common.ServiceInterfacePoint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_get(uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_get(uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_total_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of service-interface-point + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def operations_tapi_commonget_service_interface_point_details_post(body=None): # noqa: E501 + """operates on tapi.common.GetServiceInterfacePointDetails + + operates on tapi.common.GetServiceInterfacePointDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiCommonGetServiceInterfacePointDetails + """ + if connexion.request.is_json: + body = OperationsTapicommongetserviceinterfacepointdetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return TapiCommonGetServiceInterfacePointDetails(TapiCommonGetserviceinterfacepointdetailsOutput( + database.service_interface_point(body.input.sip_id_or_name))) + + +def operations_tapi_commonget_service_interface_point_list_post(): # noqa: E501 + """operations_tapi_commonget_service_interface_point_list_post + + # noqa: E501 + + + :rtype: TapiCommonGetServiceInterfacePointList + """ + return TapiCommonGetServiceInterfacePointList(TapiCommonGetserviceinterfacepointlistOutput( + database.service_interface_point_list())) + + +def operations_tapi_commonupdate_service_interface_point_post(body=None): # noqa: E501 + """operates on tapi.common.UpdateServiceInterfacePoint + + operates on tapi.common.UpdateServiceInterfacePoint # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = OperationsTapicommonupdateserviceinterfacepointBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/tapi/server/tapi_server/controllers/tapi_connectivity_controller.py b/hackfest/tapi/server/tapi_server/controllers/tapi_connectivity_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..640f5a72dacea883d145bca664810812e1d37f58 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/tapi_connectivity_controller.py @@ -0,0 +1,2852 @@ +import connexion +import six + +from tapi_server.models.operations_tapiconnectivitycreateconnectivityservice_body import OperationsTapiconnectivitycreateconnectivityserviceBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitydeleteconnectivityservice_body import OperationsTapiconnectivitydeleteconnectivityserviceBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectiondetails_body import OperationsTapiconnectivitygetconnectiondetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectionendpointdetails_body import OperationsTapiconnectivitygetconnectionendpointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectivityservicedetails_body import OperationsTapiconnectivitygetconnectivityservicedetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivityupdateconnectivityservice_body import OperationsTapiconnectivityupdateconnectivityserviceBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_common_time_range_wrapper import TapiCommonTimeRangeWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_cep_list_wrapper import TapiConnectivityCepListWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_cep_role_wrapper import TapiConnectivityCepRoleWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref_wrapper import TapiConnectivityConnectionEndPointRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_end_point_wrapper import TapiConnectivityConnectionEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_ref_wrapper import TapiConnectivityConnectionRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_spec_reference_wrapper import TapiConnectivityConnectionSpecReferenceWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_wrapper import TapiConnectivityConnectionWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_context_wrapper import TapiConnectivityConnectivityContextWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref_wrapper import TapiConnectivityConnectivityServiceEndPointRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_wrapper import TapiConnectivityConnectivityServiceEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_ref_wrapper import TapiConnectivityConnectivityServiceRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_wrapper import TapiConnectivityConnectivityServiceWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_create_connectivity_service import TapiConnectivityCreateConnectivityService # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connection_details import TapiConnectivityGetConnectionDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connection_end_point_details import TapiConnectivityGetConnectionEndPointDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connectivity_service_details import TapiConnectivityGetConnectivityServiceDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connectivity_service_list import TapiConnectivityGetConnectivityServiceList # noqa: E501 +from tapi_server.models.tapi_connectivity_resilience_route_wrapper import TapiConnectivityResilienceRouteWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_route_ref_wrapper import TapiConnectivityRouteRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_route_wrapper import TapiConnectivityRouteWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_control_ref_wrapper import TapiConnectivitySwitchControlRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_control_wrapper import TapiConnectivitySwitchControlWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_wrapper import TapiConnectivitySwitchWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_update_connectivity_service import TapiConnectivityUpdateConnectivityService # noqa: E501 +from tapi_server.models.tapi_path_computation_value_or_priority_wrapper import TapiPathComputationValueOrPriorityWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_ref_wrapper import TapiTopologyLinkRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_edge_point_ref_wrapper import TapiTopologyNodeEdgePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_resilience_type_wrapper import TapiTopologyResilienceTypeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server import util + +from tapi_server.models.tapi_connectivity_connection import TapiConnectivityConnection +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext +from tapi_server.models.tapi_connectivity_getconnectiondetails_output import TapiConnectivityGetconnectiondetailsOutput +from tapi_server.models.tapi_connectivity_getconnectionendpointdetails_output import TapiConnectivityGetconnectionendpointdetailsOutput +from tapi_server.models.tapi_connectivity_getconnectivityservicedetails_output import TapiConnectivityGetconnectivityservicedetailsOutput +from tapi_server.models.tapi_connectivity_getconnectivityservicelist_output import TapiConnectivityGetconnectivityservicelistOutput +from tapi_server import database + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(uuid, topology_uuid, node_uuid, node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPointRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param topology_uuid: Id of connection-end-point + :type topology_uuid: str + :param node_uuid: Id of connection-end-point + :type node_uuid: str + :param node_edge_point_uuid: Id of connection-end-point + :type node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_spec_reference_get(uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionSpecReference + + Provides the reference to the spec that defines the connection type and cepRoles. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + + :rtype: TapiConnectivityConnectionSpecReferenceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_get(uuid): # noqa: E501 + """returns tapi.connectivity.Connection + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + + :rtype: TapiConnectivityConnectionWrapper + """ + return database.connection(uuid) + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_lower_connectionconnection_uuid_get(uuid, connection_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionRef + + An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning). Aggregation is used as for the Node/Topology to allow changes in hierarchy. Connection aggregation reflects Node/Topology aggregation. The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param connection_uuid: Id of lower-connection + :type connection_uuid: str + + :rtype: TapiConnectivityConnectionRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(uuid, local_id, topology_uuid, node_uuid, node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPointRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param local_id: Id of route + :type local_id: str + :param topology_uuid: Id of connection-end-point + :type topology_uuid: str + :param node_uuid: Id of connection-end-point + :type node_uuid: str + :param node_edge_point_uuid: Id of connection-end-point + :type node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.Route + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param local_id: Id of route + :type local_id: str + + :rtype: TapiConnectivityRouteWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_namevalue_name_get(uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param local_id: Id of route + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.ResilienceRoute + + Provides optional resilience and state attributes to the Route. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param local_id: Id of route + :type local_id: str + + :rtype: TapiConnectivityResilienceRouteWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_namevalue_name_get(uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param local_id: Id of route + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_supported_client_linktopology_uuidlink_uuid_get(uuid, topology_uuid, link_uuid): # noqa: E501 + """returns tapi.topology.LinkRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param topology_uuid: Id of supported-client-link + :type topology_uuid: str + :param link_uuid: Id of supported-client-link + :type link_uuid: str + + :rtype: TapiTopologyLinkRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_get(uuid, switch_control_uuid): # noqa: E501 + """returns tapi.connectivity.SwitchControl + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + + :rtype: TapiConnectivitySwitchControlWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_namevalue_name_get(uuid, switch_control_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_resilience_type_get(uuid, switch_control_uuid): # noqa: E501 + """returns tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + + :rtype: TapiTopologyResilienceTypeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_sub_switch_controlconnection_uuidsub_switch_control_switch_control_uuid_get(uuid, switch_control_uuid, connection_uuid, sub_switch_control_switch_control_uuid): # noqa: E501 + """returns tapi.connectivity.SwitchControlRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param connection_uuid: Id of sub-switch-control + :type connection_uuid: str + :param sub_switch_control_switch_control_uuid: Id of sub-switch-control + :type sub_switch_control_switch_control_uuid: str + + :rtype: TapiConnectivitySwitchControlRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_get(uuid, switch_control_uuid, local_id): # noqa: E501 + """returns tapi.connectivity.Switch + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param local_id: Id of switch + :type local_id: str + + :rtype: TapiConnectivitySwitchWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_namevalue_name_get(uuid, switch_control_uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param local_id: Id of switch + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(uuid, switch_control_uuid, local_id, topology_uuid, node_uuid, node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPointRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param local_id: Id of switch + :type local_id: str + :param topology_uuid: Id of selected-connection-end-point + :type topology_uuid: str + :param node_uuid: Id of selected-connection-end-point + :type node_uuid: str + :param node_edge_point_uuid: Id of selected-connection-end-point + :type node_edge_point_uuid: str + :param connection_end_point_uuid: Id of selected-connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_routeconnection_uuidroute_local_id_get(uuid, switch_control_uuid, local_id, connection_uuid, route_local_id): # noqa: E501 + """returns tapi.connectivity.RouteRef + + none # noqa: E501 + + :param uuid: Id of connection + :type uuid: str + :param switch_control_uuid: Id of switch-control + :type switch_control_uuid: str + :param local_id: Id of switch + :type local_id: str + :param connection_uuid: Id of selected-route + :type connection_uuid: str + :param route_local_id: Id of selected-route + :type route_local_id: str + + :rtype: TapiConnectivityRouteRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_service_post(body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityService + + none # noqa: E501 + + :param body: tapi.connectivity.ConnectivityService to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + raw_body = connexion.request.get_json() + if "tapi-connectivity:connectivity-service" in raw_body: + raw_body["connectivity-service"] = raw_body.pop("tapi-connectivity:connectivity-service") + if isinstance(raw_body["connectivity-service"], list) and len(raw_body["connectivity-service"]) > 0: + raw_body["connectivity-service"] = raw_body["connectivity-service"][0] + body = TapiConnectivityConnectivityServiceWrapper.from_dict(raw_body) # noqa: E501 + + connection = TapiConnectivityConnection( + uuid=body.connectivity_service.uuid, + connection_end_point=[ + TapiConnectivityConnectionEndPointRef( + node_edge_point_uuid="node-1-port-3", connection_end_point_uuid="cep13"), + TapiConnectivityConnectionEndPointRef( + node_edge_point_uuid="node-3-port-2", connection_end_point_uuid="cep32"), + ] + ) + connection_ref = TapiConnectivityConnectionRef(connection.uuid) + body.connectivity_service.connection = [ connection_ref ] + + if database.context.connectivity_context is None: + database.context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + + database.context.connectivity_context.connection.append(connection) + database.context.connectivity_context.connectivity_service.append(body.connectivity_service) + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_connectionconnection_uuid_get(uuid, connection_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param connection_uuid: Id of connection + :type connection_uuid: str + + :rtype: TapiConnectivityConnectionRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_delete(uuid): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_get(uuid): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiConnectivityConnectivityServiceRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_post(uuid, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.connectivity.ConnectivityServiceRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.connectivity.ConnectivityServiceRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.topology.CostCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyCostCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_delete(uuid, cost_name): # noqa: E501 + """removes tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_get(uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_put(uuid, cost_name, body=None): # noqa: E501 + """creates or updates tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + :param body: tapi.topology.CostCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyCostCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_delete(uuid): # noqa: E501 + """removes tapi.connectivity.ConnectivityService + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + if database.context.connectivity_context is None: + database.context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + + database.context.connectivity_context.connectivity_service = [ + connectivity_service + for connectivity_service in database.context.connectivity_context.connectivity_service + if connectivity_service.uuid != uuid # keep items with different uuid + ] + database.context.connectivity_context.connection = [ + connection + for connection in database.context.connectivity_context.connection + if connection.uuid != uuid # keep items with different uuid + ] + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusion_post(uuid, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.connectivity.ConnectivityServiceRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_delete(uuid, connectivity_service_uuid): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param connectivity_service_uuid: Id of diversity-exclusion + :type connectivity_service_uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_get(uuid, connectivity_service_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param connectivity_service_uuid: Id of diversity-exclusion + :type connectivity_service_uuid: str + + :rtype: TapiConnectivityConnectivityServiceRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_put(uuid, connectivity_service_uuid, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param connectivity_service_uuid: Id of diversity-exclusion + :type connectivity_service_uuid: str + :param body: tapi.connectivity.ConnectivityServiceRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_point_post(uuid, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.connectivity.ConnectivityServiceEndPoint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get(uuid, local_id): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.BandwidthProfile to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.BandwidthProfile to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_get(uuid, local_id): # noqa: E501 + """returns tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.Capacity to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.Capacity to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(uuid, local_id, topology_uuid, node_uuid, node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param topology_uuid: Id of connection-end-point + :type topology_uuid: str + :param node_uuid: Id of connection-end-point + :type node_uuid: str + :param node_edge_point_uuid: Id of connection-end-point + :type node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_delete(uuid, local_id): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiConnectivityConnectivityServiceEndPointWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_name_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_delete(uuid, local_id, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_get(uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_put(uuid, local_id, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_delete(uuid, local_id): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiConnectivityConnectivityServiceEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_delete(uuid, local_id): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiConnectivityConnectivityServiceEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPoint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_delete(uuid, local_id): # noqa: E501 + """removes tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_get(uuid, local_id): # noqa: E501 + """returns tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiConnectivityConnectivityServiceEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.connectivity.ConnectivityServiceEndPointRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceEndPointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_get(uuid, local_id): # noqa: E501 + """returns tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonServiceInterfacePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.ServiceInterfacePointRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.ServiceInterfacePointRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_get(uuid): # noqa: E501 + """returns tapi.connectivity.ConnectivityService + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiConnectivityConnectivityServiceWrapper + """ + if database.context.connectivity_context is None: + database.context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + return database.connectivity_service(uuid) + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.topology.LatencyCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyLatencyCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_delete(uuid, traffic_property_name): # noqa: E501 + """removes tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_get(uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_put(uuid, traffic_property_name, body=None): # noqa: E501 + """creates or updates tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + :param body: tapi.topology.LatencyCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyLatencyCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityService + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.connectivity.ConnectivityService to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityServiceWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_delete(uuid): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_post(uuid, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_delete(uuid): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_post(uuid, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_delete(uuid): # noqa: E501 + """removes tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_get(uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_delete(uuid): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_post(uuid, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_delete(uuid): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_post(uuid, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_post(uuid, body=None): # noqa: E501 + """creates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.BandwidthProfile to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.BandwidthProfile to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_delete(uuid): # noqa: E501 + """removes tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_get(uuid): # noqa: E501 + """returns tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_post(uuid, body=None): # noqa: E501 + """creates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.Capacity to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.Capacity to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_delete(uuid): # noqa: E501 + """removes tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_get(uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_post(uuid, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_delete(uuid): # noqa: E501 + """removes tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_get(uuid): # noqa: E501 + """returns tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiTopologyResilienceTypeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.topology.ResilienceType to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyResilienceTypeWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.topology.ResilienceType to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyResilienceTypeWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.topology.RiskCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyRiskCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_delete(uuid, risk_characteristic_name): # noqa: E501 + """removes tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_get(uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_put(uuid, risk_characteristic_name, body=None): # noqa: E501 + """creates or updates tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + :param body: tapi.topology.RiskCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyRiskCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_delete(uuid): # noqa: E501 + """removes tapi.common.TimeRange + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_get(uuid): # noqa: E501 + """returns tapi.common.TimeRange + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + + :rtype: TapiCommonTimeRangeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_post(uuid, body=None): # noqa: E501 + """creates tapi.common.TimeRange + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.TimeRange to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonTimeRangeWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.common.TimeRange + + none # noqa: E501 + + :param uuid: Id of connectivity-service + :type uuid: str + :param body: tapi.common.TimeRange to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonTimeRangeWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_delete(): # noqa: E501 + """removes tapi.connectivity.ConnectivityContext + + Augments the base TAPI Context with ConnectivityService information # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_get(): # noqa: E501 + """returns tapi.connectivity.ConnectivityContext + + Augments the base TAPI Context with ConnectivityService information # noqa: E501 + + + :rtype: TapiConnectivityConnectivityContextWrapper + """ + if database.context.connectivity_context is None: + database.context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + return database.connectivity_context() + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_post(body=None): # noqa: E501 + """creates tapi.connectivity.ConnectivityContext + + Augments the base TAPI Context with ConnectivityService information # noqa: E501 + + :param body: tapi.connectivity.ConnectivityContext to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_connectivityconnectivity_context_put(body=None): # noqa: E501 + """creates or updates tapi.connectivity.ConnectivityContext + + Augments the base TAPI Context with ConnectivityService information # noqa: E501 + + :param body: tapi.connectivity.ConnectivityContext to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiConnectivityConnectivityContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_aggregated_connection_end_pointtopology_uuidaggregated_connection_end_point_node_uuidnode_edge_point_uuidaggregated_connection_end_point_connection_end_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid, topology_uuid, aggregated_connection_end_point_node_uuid, node_edge_point_uuid, aggregated_connection_end_point_connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + :param topology_uuid: Id of aggregated-connection-end-point + :type topology_uuid: str + :param aggregated_connection_end_point_node_uuid: Id of aggregated-connection-end-point + :type aggregated_connection_end_point_node_uuid: str + :param node_edge_point_uuid: Id of aggregated-connection-end-point + :type node_edge_point_uuid: str + :param aggregated_connection_end_point_connection_end_point_uuid: Id of aggregated-connection-end-point + :type aggregated_connection_end_point_connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_connection_spec_reference_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionSpecReference + + The reference to the spec that defines the cep role. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionSpecReferenceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.CepRole + + Defines the role of the CEP in the context of the connection spec. There may be many cep role - connection spec combinations for a particular CEP where each corresponds to a specific connection associated with the CEP. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityCepRoleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_client_node_edge_pointtopology_uuidclient_node_edge_point_node_uuidnode_edge_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid, topology_uuid, client_node_edge_point_node_uuid, node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + :param topology_uuid: Id of client-node-edge-point + :type topology_uuid: str + :param client_node_edge_point_node_uuid: Id of client-node-edge-point + :type client_node_edge_point_node_uuid: str + :param node_edge_point_uuid: Id of client-node-edge-point + :type node_edge_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.connectivity.ConnectionEndPoint + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiConnectivityConnectionEndPointWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_namevalue_name_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_parent_node_edge_point_get(uuid, node_uuid, owned_node_edge_point_uuid, connection_end_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param connection_end_point_uuid: Id of connection-end-point + :type connection_end_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.connectivity.CepList + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiConnectivityCepListWrapper + """ + return database.connection_end_point_list(uuid, node_uuid, owned_node_edge_point_uuid) + + +def operations_tapi_connectivitycreate_connectivity_service_post(body=None): # noqa: E501 + """operates on tapi.connectivity.CreateConnectivityService + + operates on tapi.connectivity.CreateConnectivityService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiConnectivityCreateConnectivityService + """ + if connexion.request.is_json: + body = OperationsTapiconnectivitycreateconnectivityserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_connectivitydelete_connectivity_service_post(body=None): # noqa: E501 + """operates on tapi.connectivity.DeleteConnectivityService + + operates on tapi.connectivity.DeleteConnectivityService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = OperationsTapiconnectivitydeleteconnectivityserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_connectivityget_connection_details_post(body=None): # noqa: E501 + """operates on tapi.connectivity.GetConnectionDetails + + operates on tapi.connectivity.GetConnectionDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiConnectivityGetConnectionDetails + """ + if connexion.request.is_json: + body = OperationsTapiconnectivitygetconnectiondetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return TapiConnectivityGetConnectionDetails(TapiConnectivityGetconnectiondetailsOutput( + database.connection(body.input.connection_id_or_name))) + + +def operations_tapi_connectivityget_connection_end_point_details_post(body=None): # noqa: E501 + """operates on tapi.connectivity.GetConnectionEndPointDetails + + operates on tapi.connectivity.GetConnectionEndPointDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiConnectivityGetConnectionEndPointDetails + """ + if connexion.request.is_json: + body = OperationsTapiconnectivitygetconnectionendpointdetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return TapiConnectivityGetConnectionEndPointDetails(TapiConnectivityGetconnectionendpointdetailsOutput( + database.connection_end_point(body.input.topology_id_or_name, + body.input.node_id_or_name, + body.input.nep_id_or_name, + body.input.cep_id_or_name))) + + +def operations_tapi_connectivityget_connectivity_service_details_post(body=None): # noqa: E501 + """operates on tapi.connectivity.GetConnectivityServiceDetails + + operates on tapi.connectivity.GetConnectivityServiceDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiConnectivityGetConnectivityServiceDetails + """ + if connexion.request.is_json: + body = OperationsTapiconnectivitygetconnectivityservicedetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return TapiConnectivityGetConnectivityServiceDetails(TapiConnectivityGetconnectivityservicedetailsOutput( + database.connectivity_service(body.input.service_id_or_name))) + + +def operations_tapi_connectivityget_connectivity_service_list_post(): # noqa: E501 + """operations_tapi_connectivityget_connectivity_service_list_post + + # noqa: E501 + + + :rtype: TapiConnectivityGetConnectivityServiceList + """ + return TapiConnectivityGetConnectivityServiceList(TapiConnectivityGetconnectivityservicelistOutput( + database.connectivity_service_list())) + + +def operations_tapi_connectivityupdate_connectivity_service_post(body=None): # noqa: E501 + """operates on tapi.connectivity.UpdateConnectivityService + + operates on tapi.connectivity.UpdateConnectivityService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiConnectivityUpdateConnectivityService + """ + if connexion.request.is_json: + body = OperationsTapiconnectivityupdateconnectivityserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/tapi/server/tapi_server/controllers/tapi_notification_controller.py b/hackfest/tapi/server/tapi_server/controllers/tapi_notification_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..efb0dfd3ed866bec279be72b8e4774b78b332081 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/tapi_notification_controller.py @@ -0,0 +1,664 @@ +import connexion +import six + +from tapi_server.models.operations_tapinotificationcreatenotificationsubscriptionservice_body import OperationsTapinotificationcreatenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.operations_tapinotificationdeletenotificationsubscriptionservice_body import OperationsTapinotificationdeletenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.operations_tapinotificationgetnotificationlist_body import OperationsTapinotificationgetnotificationlistBody # noqa: E501 +from tapi_server.models.operations_tapinotificationgetnotificationsubscriptionservicedetails_body import OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody # noqa: E501 +from tapi_server.models.operations_tapinotificationupdatenotificationsubscriptionservice_body import OperationsTapinotificationupdatenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_notification_alarm_info_wrapper import TapiNotificationAlarmInfoWrapper # noqa: E501 +from tapi_server.models.tapi_notification_create_notification_subscription_service import TapiNotificationCreateNotificationSubscriptionService # noqa: E501 +from tapi_server.models.tapi_notification_delete_notification_subscription_service import TapiNotificationDeleteNotificationSubscriptionService # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_list import TapiNotificationGetNotificationList # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_subscription_service_details import TapiNotificationGetNotificationSubscriptionServiceDetails # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_subscription_service_list import TapiNotificationGetNotificationSubscriptionServiceList # noqa: E501 +from tapi_server.models.tapi_notification_get_supported_notification_types import TapiNotificationGetSupportedNotificationTypes # noqa: E501 +from tapi_server.models.tapi_notification_name_and_value_change_wrapper import TapiNotificationNameAndValueChangeWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_channel_wrapper import TapiNotificationNotificationChannelWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_context_wrapper import TapiNotificationNotificationContextWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_subscription_service_wrapper import TapiNotificationNotificationSubscriptionServiceWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_wrapper import TapiNotificationNotificationWrapper # noqa: E501 +from tapi_server.models.tapi_notification_subscription_filter_wrapper import TapiNotificationSubscriptionFilterWrapper # noqa: E501 +from tapi_server.models.tapi_notification_tca_info_wrapper import TapiNotificationTcaInfoWrapper # noqa: E501 +from tapi_server.models.tapi_notification_update_notification_subscription_service import TapiNotificationUpdateNotificationSubscriptionService # noqa: E501 +from tapi_server import util + + +def data_tapi_commoncontext_tapi_notificationnotification_context_delete(): # noqa: E501 + """removes tapi.notification.NotificationContext + + Augments the base TAPI Context with NotificationService information # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_get(): # noqa: E501 + """returns tapi.notification.NotificationContext + + Augments the base TAPI Context with NotificationService information # noqa: E501 + + + :rtype: TapiNotificationNotificationContextWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscription_post(body=None): # noqa: E501 + """creates tapi.notification.NotificationSubscriptionService + + none # noqa: E501 + + :param body: tapi.notification.NotificationSubscriptionService to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationNotificationSubscriptionServiceWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_delete(uuid): # noqa: E501 + """removes tapi.notification.NotificationSubscriptionService + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_get(uuid): # noqa: E501 + """returns tapi.notification.NotificationSubscriptionService + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + + :rtype: TapiNotificationNotificationSubscriptionServiceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_get(uuid): # noqa: E501 + """returns tapi.notification.NotificationChannel + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + + :rtype: TapiNotificationNotificationChannelWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_additional_infovalue_name_get(uuid, notification_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + :param value_name: Id of additional-info + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_alarm_info_get(uuid, notification_uuid): # noqa: E501 + """returns tapi.notification.AlarmInfo + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + + :rtype: TapiNotificationAlarmInfoWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_changed_attributesvalue_name_get(uuid, notification_uuid, value_name): # noqa: E501 + """returns tapi.notification.NameAndValueChange + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + :param value_name: Id of changed-attributes + :type value_name: str + + :rtype: TapiNotificationNameAndValueChangeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_get(uuid, notification_uuid): # noqa: E501 + """returns tapi.notification.Notification + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + + :rtype: TapiNotificationNotificationWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_namevalue_name_get(uuid, notification_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_target_object_namevalue_name_get(uuid, notification_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + :param value_name: Id of target-object-name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_tca_info_get(uuid, notification_uuid): # noqa: E501 + """returns tapi.notification.TcaInfo + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param notification_uuid: Id of notification + :type notification_uuid: str + + :rtype: TapiNotificationTcaInfoWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.notification.NotificationSubscriptionService + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param body: tapi.notification.NotificationSubscriptionService to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationNotificationSubscriptionServiceWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_delete(uuid): # noqa: E501 + """removes tapi.notification.SubscriptionFilter + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_get(uuid): # noqa: E501 + """returns tapi.notification.SubscriptionFilter + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + + :rtype: TapiNotificationSubscriptionFilterWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_post(uuid, body=None): # noqa: E501 + """creates tapi.notification.SubscriptionFilter + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param body: tapi.notification.SubscriptionFilter to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationSubscriptionFilterWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.notification.SubscriptionFilter + + none # noqa: E501 + + :param uuid: Id of notif-subscription + :type uuid: str + :param body: tapi.notification.SubscriptionFilter to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationSubscriptionFilterWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_additional_infovalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + :param value_name: Id of additional-info + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_alarm_info_get(uuid): # noqa: E501 + """returns tapi.notification.AlarmInfo + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + + :rtype: TapiNotificationAlarmInfoWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_changed_attributesvalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.notification.NameAndValueChange + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + :param value_name: Id of changed-attributes + :type value_name: str + + :rtype: TapiNotificationNameAndValueChangeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_get(uuid): # noqa: E501 + """returns tapi.notification.Notification + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + + :rtype: TapiNotificationNotificationWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_target_object_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + :param value_name: Id of target-object-name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_tca_info_get(uuid): # noqa: E501 + """returns tapi.notification.TcaInfo + + none # noqa: E501 + + :param uuid: Id of notification + :type uuid: str + + :rtype: TapiNotificationTcaInfoWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_post(body=None): # noqa: E501 + """creates tapi.notification.NotificationContext + + Augments the base TAPI Context with NotificationService information # noqa: E501 + + :param body: tapi.notification.NotificationContext to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationNotificationContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_notificationnotification_context_put(body=None): # noqa: E501 + """creates or updates tapi.notification.NotificationContext + + Augments the base TAPI Context with NotificationService information # noqa: E501 + + :param body: tapi.notification.NotificationContext to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiNotificationNotificationContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_notificationcreate_notification_subscription_service_post(body=None): # noqa: E501 + """operates on tapi.notification.CreateNotificationSubscriptionService + + operates on tapi.notification.CreateNotificationSubscriptionService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiNotificationCreateNotificationSubscriptionService + """ + if connexion.request.is_json: + body = OperationsTapinotificationcreatenotificationsubscriptionserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_notificationdelete_notification_subscription_service_post(body=None): # noqa: E501 + """operates on tapi.notification.DeleteNotificationSubscriptionService + + operates on tapi.notification.DeleteNotificationSubscriptionService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiNotificationDeleteNotificationSubscriptionService + """ + if connexion.request.is_json: + body = OperationsTapinotificationdeletenotificationsubscriptionserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_notificationget_notification_list_post(body=None): # noqa: E501 + """operates on tapi.notification.GetNotificationList + + operates on tapi.notification.GetNotificationList # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiNotificationGetNotificationList + """ + if connexion.request.is_json: + body = OperationsTapinotificationgetnotificationlistBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_notificationget_notification_subscription_service_details_post(body=None): # noqa: E501 + """operates on tapi.notification.GetNotificationSubscriptionServiceDetails + + operates on tapi.notification.GetNotificationSubscriptionServiceDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiNotificationGetNotificationSubscriptionServiceDetails + """ + if connexion.request.is_json: + body = OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_notificationget_notification_subscription_service_list_post(): # noqa: E501 + """operations_tapi_notificationget_notification_subscription_service_list_post + + # noqa: E501 + + + :rtype: TapiNotificationGetNotificationSubscriptionServiceList + """ + return 'do some magic!' + + +def operations_tapi_notificationget_supported_notification_types_post(): # noqa: E501 + """operations_tapi_notificationget_supported_notification_types_post + + # noqa: E501 + + + :rtype: TapiNotificationGetSupportedNotificationTypes + """ + return 'do some magic!' + + +def operations_tapi_notificationupdate_notification_subscription_service_post(body=None): # noqa: E501 + """operates on tapi.notification.UpdateNotificationSubscriptionService + + operates on tapi.notification.UpdateNotificationSubscriptionService # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiNotificationUpdateNotificationSubscriptionService + """ + if connexion.request.is_json: + body = OperationsTapinotificationupdatenotificationsubscriptionserviceBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/tapi/server/tapi_server/controllers/tapi_path_computation_controller.py b/hackfest/tapi/server/tapi_server/controllers/tapi_path_computation_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..012d1f915c0da0334e589c15023a27a37854754f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/tapi_path_computation_controller.py @@ -0,0 +1,1841 @@ +import connexion +import six + +from tapi_server.models.operations_tapipathcomputationcomputep2ppath_body import OperationsTapipathcomputationcomputep2ppathBody # noqa: E501 +from tapi_server.models.operations_tapipathcomputationdeletep2ppath_body import OperationsTapipathcomputationdeletep2ppathBody # noqa: E501 +from tapi_server.models.operations_tapipathcomputationoptimizep2ppath_body import OperationsTapipathcomputationoptimizep2ppathBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_compute_p2_p_path import TapiPathComputationComputeP2PPath # noqa: E501 +from tapi_server.models.tapi_path_computation_delete_p2_p_path import TapiPathComputationDeleteP2PPath # noqa: E501 +from tapi_server.models.tapi_path_computation_optimize_p2_ppath import TapiPathComputationOptimizeP2Ppath # noqa: E501 +from tapi_server.models.tapi_path_computation_path_computation_context_wrapper import TapiPathComputationPathComputationContextWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_computation_service_wrapper import TapiPathComputationPathComputationServiceWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_objective_function_wrapper import TapiPathComputationPathObjectiveFunctionWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_optimization_constraint_wrapper import TapiPathComputationPathOptimizationConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_ref_wrapper import TapiPathComputationPathRefWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_service_end_point_wrapper import TapiPathComputationPathServiceEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_wrapper import TapiPathComputationPathWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_routing_constraint_wrapper import TapiPathComputationRoutingConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_topology_constraint_wrapper import TapiPathComputationTopologyConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_value_or_priority_wrapper import TapiPathComputationValueOrPriorityWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_ref_wrapper import TapiTopologyLinkRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server import util + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_delete(): # noqa: E501 + """removes tapi.path.computation.PathComputationContext + + Augments the base TAPI Context with PathComputationService information # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_get(): # noqa: E501 + """returns tapi.path.computation.PathComputationContext + + Augments the base TAPI Context with PathComputationService information # noqa: E501 + + + :rtype: TapiPathComputationPathComputationContextWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_service_post(body=None): # noqa: E501 + """creates tapi.path.computation.PathComputationService + + none # noqa: E501 + + :param body: tapi.path.computation.PathComputationService to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathComputationServiceWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_delete(uuid): # noqa: E501 + """removes tapi.path.computation.PathComputationService + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_point_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.PathServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathServiceEndPoint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathServiceEndPointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get(uuid, local_id): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.BandwidthProfile to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.BandwidthProfile to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonBandwidthProfileWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_get(uuid, local_id): # noqa: E501 + """returns tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.Capacity to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.Capacity + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.Capacity to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_get(uuid, local_id): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.CapacityValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonCapacityValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_delete(uuid, local_id): # noqa: E501 + """removes tapi.path.computation.PathServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_get(uuid, local_id): # noqa: E501 + """returns tapi.path.computation.PathServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiPathComputationPathServiceEndPointWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_name_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_delete(uuid, local_id, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_get(uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_put(uuid, local_id, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.path.computation.PathServiceEndPoint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.path.computation.PathServiceEndPoint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathServiceEndPointWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_delete(uuid, local_id): # noqa: E501 + """removes tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_get(uuid, local_id): # noqa: E501 + """returns tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + + :rtype: TapiCommonServiceInterfacePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_post(uuid, local_id, body=None): # noqa: E501 + """creates tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.ServiceInterfacePointRef to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_put(uuid, local_id, body=None): # noqa: E501 + """creates or updates tapi.common.ServiceInterfacePointRef + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param local_id: Id of end-point + :type local_id: str + :param body: tapi.common.ServiceInterfacePointRef to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonServiceInterfacePointRefWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_get(uuid): # noqa: E501 + """returns tapi.path.computation.PathComputationService + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationPathComputationServiceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_delete(uuid): # noqa: E501 + """removes tapi.path.computation.PathObjectiveFunction + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_get(uuid): # noqa: E501 + """returns tapi.path.computation.PathObjectiveFunction + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationPathObjectiveFunctionWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.PathObjectiveFunction + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathObjectiveFunction to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathObjectiveFunctionWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.PathObjectiveFunction + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathObjectiveFunction to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathObjectiveFunctionWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_delete(uuid): # noqa: E501 + """removes tapi.path.computation.PathOptimizationConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_get(uuid): # noqa: E501 + """returns tapi.path.computation.PathOptimizationConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationPathOptimizationConstraintWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_name_post(uuid, body=None): # noqa: E501 + """creates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.common.NameAndValue to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_delete(uuid, value_name): # noqa: E501 + """removes tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_put(uuid, value_name, body=None): # noqa: E501 + """creates or updates tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param value_name: Id of name + :type value_name: str + :param body: tapi.common.NameAndValue to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiCommonNameAndValueWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.PathOptimizationConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathOptimizationConstraint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathOptimizationConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.PathOptimizationConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathOptimizationConstraint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathOptimizationConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_pathpath_uuid_get(uuid, path_uuid): # noqa: E501 + """returns tapi.path.computation.PathRef + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param path_uuid: Id of path + :type path_uuid: str + + :rtype: TapiPathComputationPathRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.PathComputationService + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.PathComputationService to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathComputationServiceWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.topology.CostCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyCostCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_delete(uuid, cost_name): # noqa: E501 + """removes tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_get(uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_put(uuid, cost_name, body=None): # noqa: E501 + """creates or updates tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + :param body: tapi.topology.CostCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyCostCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_delete(uuid): # noqa: E501 + """removes tapi.path.computation.RoutingConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_get(uuid): # noqa: E501 + """returns tapi.path.computation.RoutingConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationRoutingConstraintWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.topology.LatencyCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyLatencyCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_delete(uuid, traffic_property_name): # noqa: E501 + """removes tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_get(uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_put(uuid, traffic_property_name, body=None): # noqa: E501 + """creates or updates tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + :param body: tapi.topology.LatencyCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyLatencyCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_delete(uuid): # noqa: E501 + """removes tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.ValueOrPriority to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationValueOrPriorityWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.RoutingConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.RoutingConstraint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationRoutingConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.RoutingConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.RoutingConstraint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationRoutingConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristic_post(uuid, body=None): # noqa: E501 + """creates tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.topology.RiskCharacteristic to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyRiskCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_delete(uuid, risk_characteristic_name): # noqa: E501 + """removes tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get(uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_put(uuid, risk_characteristic_name, body=None): # noqa: E501 + """creates or updates tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + :param body: tapi.topology.RiskCharacteristic to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyRiskCharacteristicWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_delete(uuid): # noqa: E501 + """removes tapi.path.computation.TopologyConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_get(uuid): # noqa: E501 + """returns tapi.path.computation.TopologyConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + + :rtype: TapiPathComputationTopologyConstraintWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_post(uuid, body=None): # noqa: E501 + """creates tapi.path.computation.TopologyConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.TopologyConstraint to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationTopologyConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_put(uuid, body=None): # noqa: E501 + """creates or updates tapi.path.computation.TopologyConstraint + + none # noqa: E501 + + :param uuid: Id of path-comp-service + :type uuid: str + :param body: tapi.path.computation.TopologyConstraint to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationTopologyConstraintWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_get(uuid): # noqa: E501 + """returns tapi.path.computation.Path + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + + :rtype: TapiPathComputationPathWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_linktopology_uuidlink_uuid_get(uuid, topology_uuid, link_uuid): # noqa: E501 + """returns tapi.topology.LinkRef + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + :param topology_uuid: Id of link + :type topology_uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiTopologyLinkRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of path + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_cost_characteristiccost_name_get(uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of path + :type uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_get(uuid): # noqa: E501 + """returns tapi.path.computation.RoutingConstraint + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + + :rtype: TapiPathComputationRoutingConstraintWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_latency_characteristictraffic_property_name_get(uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of path + :type uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_cost_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_delay_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + Delay unit is microseconds. # noqa: E501 + + :param uuid: Id of path + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_hops_get(uuid): # noqa: E501 + """returns tapi.path.computation.ValueOrPriority + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get(uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + none # noqa: E501 + + :param uuid: Id of path + :type uuid: str + :param risk_characteristic_name: Id of risk-diversity-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_post(body=None): # noqa: E501 + """creates tapi.path.computation.PathComputationContext + + Augments the base TAPI Context with PathComputationService information # noqa: E501 + + :param body: tapi.path.computation.PathComputationContext to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathComputationContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_path_computationpath_computation_context_put(body=None): # noqa: E501 + """creates or updates tapi.path.computation.PathComputationContext + + Augments the base TAPI Context with PathComputationService information # noqa: E501 + + :param body: tapi.path.computation.PathComputationContext to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiPathComputationPathComputationContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_path_computationcompute_p_2_p_path_post(body=None): # noqa: E501 + """operates on tapi.path.computation.ComputeP2PPath + + operates on tapi.path.computation.ComputeP2PPath # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiPathComputationComputeP2PPath + """ + if connexion.request.is_json: + body = OperationsTapipathcomputationcomputep2ppathBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_path_computationdelete_p_2_p_path_post(body=None): # noqa: E501 + """operates on tapi.path.computation.DeleteP2PPath + + operates on tapi.path.computation.DeleteP2PPath # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiPathComputationDeleteP2PPath + """ + if connexion.request.is_json: + body = OperationsTapipathcomputationdeletep2ppathBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def operations_tapi_path_computationoptimize_p_2_ppath_post(body=None): # noqa: E501 + """operates on tapi.path.computation.OptimizeP2Ppath + + operates on tapi.path.computation.OptimizeP2Ppath # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiPathComputationOptimizeP2Ppath + """ + if connexion.request.is_json: + body = OperationsTapipathcomputationoptimizep2ppathBody.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' diff --git a/hackfest/tapi/server/tapi_server/controllers/tapi_topology_controller.py b/hackfest/tapi/server/tapi_server/controllers/tapi_topology_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..536be48d38978f220df04f7d4cd2f479ef7fa14d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/controllers/tapi_topology_controller.py @@ -0,0 +1,2193 @@ +import connexion +import six + +from tapi_server.models.operations_tapitopologygetlinkdetails_body import OperationsTapitopologygetlinkdetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygetnodedetails_body import OperationsTapitopologygetnodedetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygetnodeedgepointdetails_body import OperationsTapitopologygetnodeedgepointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygettopologydetails_body import OperationsTapitopologygettopologydetailsBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_connection_spec_reference_wrapper import TapiTopologyConnectionSpecReferenceWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_get_link_details import TapiTopologyGetLinkDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_node_details import TapiTopologyGetNodeDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_node_edge_point_details import TapiTopologyGetNodeEdgePointDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_topology_details import TapiTopologyGetTopologyDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_topology_list import TapiTopologyGetTopologyList # noqa: E501 +from tapi_server.models.tapi_topology_inter_rule_group_wrapper import TapiTopologyInterRuleGroupWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_wrapper import TapiTopologyLinkWrapper # noqa: E501 +from tapi_server.models.tapi_topology_network_topology_service_wrapper import TapiTopologyNetworkTopologyServiceWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_edge_point_ref_wrapper import TapiTopologyNodeEdgePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_owned_node_edge_point_wrapper import TapiTopologyNodeOwnedNodeEdgePointWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_rule_group_ref_wrapper import TapiTopologyNodeRuleGroupRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_rule_group_wrapper import TapiTopologyNodeRuleGroupWrapper # noqa: E501 +from tapi_server.models.tapi_topology_port_role_rule_wrapper import TapiTopologyPortRoleRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_resilience_type_wrapper import TapiTopologyResilienceTypeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_rule_wrapper import TapiTopologyRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_signal_property_rule_wrapper import TapiTopologySignalPropertyRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_context_wrapper import TapiTopologyTopologyContextWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_node_wrapper import TapiTopologyTopologyNodeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_ref_wrapper import TapiTopologyTopologyRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_wrapper import TapiTopologyTopologyWrapper # noqa: E501 +from tapi_server.models.tapi_topology_validation_mechanism_wrapper import TapiTopologyValidationMechanismWrapper # noqa: E501 +from tapi_server import util + +from tapi_server.models.tapi_topology_getlinkdetails_output import TapiTopologyGetlinkdetailsOutput +from tapi_server.models.tapi_topology_getnodeedgepointdetails_output import TapiTopologyGetnodeedgepointdetailsOutput +from tapi_server.models.tapi_topology_getnodedetails_output import TapiTopologyGetnodedetailsOutput +from tapi_server.models.tapi_topology_gettopologylist_output import TapiTopologyGettopologylistOutput +from tapi_server.models.tapi_topology_gettopologydetails_output import TapiTopologyGettopologydetailsOutput +from tapi_server import database + + +def data_tapi_commoncontext_tapi_topologytopology_context_delete(): # noqa: E501 + """removes tapi.topology.context.TopologyContext + + Augments the base TAPI Context with TopologyService information # noqa: E501 + + + :rtype: None + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_get(): # noqa: E501 + """returns tapi.topology.context.TopologyContext + + Augments the base TAPI Context with TopologyService information # noqa: E501 + + + :rtype: TapiTopologyTopologyContextWrapper + """ + return database.context.topology_context + + +def data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_get(): # noqa: E501 + """returns tapi.topology.NetworkTopologyService + + none # noqa: E501 + + + :rtype: TapiTopologyNetworkTopologyServiceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_namevalue_name_get(value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_topologytopology_uuid_get(topology_uuid): # noqa: E501 + """returns tapi.topology.TopologyRef + + none # noqa: E501 + + :param topology_uuid: Id of topology + :type topology_uuid: str + + :rtype: TapiTopologyTopologyRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_post(body=None): # noqa: E501 + """creates tapi.topology.context.TopologyContext + + Augments the base TAPI Context with TopologyService information # noqa: E501 + + :param body: tapi.topology.TopologyContext to be added to list + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyTopologyContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_put(body=None): # noqa: E501 + """creates or updates tapi.topology.context.TopologyContext + + Augments the base TAPI Context with TopologyService information # noqa: E501 + + :param body: tapi.topology.TopologyContext to be added or updated + :type body: dict | bytes + + :rtype: None + """ + if connexion.request.is_json: + body = TapiTopologyTopologyContextWrapper.from_dict(connexion.request.get_json()) # noqa: E501 + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_get(uuid): # noqa: E501 + """returns tapi.topology.topologycontext.Topology + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + + :rtype: TapiTopologyTopologyWrapper + """ + return database.topology(uuid) + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_total_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_cost_characteristiccost_name_get(uuid, link_uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_get(uuid, link_uuid): # noqa: E501 + """returns tapi.topology.Link + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiTopologyLinkWrapper + """ + return database.link(uuid, link_uuid) + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_latency_characteristictraffic_property_name_get(uuid, link_uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_namevalue_name_get(uuid, link_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_node_edge_pointtopology_uuidnode_uuidnode_edge_point_uuid_get(uuid, link_uuid, topology_uuid, node_uuid, node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param topology_uuid: Id of node-edge-point + :type topology_uuid: str + :param node_uuid: Id of node-edge-point + :type node_uuid: str + :param node_edge_point_uuid: Id of node-edge-point + :type node_edge_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_resilience_type_get(uuid, link_uuid): # noqa: E501 + """returns tapi.topology.ResilienceType + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiTopologyResilienceTypeWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_risk_characteristicrisk_characteristic_name_get(uuid, link_uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param risk_characteristic_name: Id of risk-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_total_size_get(uuid, link_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_validation_mechanismvalidation_mechanism_get(uuid, link_uuid, validation_mechanism): # noqa: E501 + """returns tapi.topology.ValidationMechanism + + Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param link_uuid: Id of link + :type link_uuid: str + :param validation_mechanism: Id of validation-mechanism + :type validation_mechanism: str + + :rtype: TapiTopologyValidationMechanismWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_namevalue_name_get(uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get(uuid, node_uuid, topology_uuid, aggregated_node_edge_point_node_uuid, node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param topology_uuid: Id of aggregated-node-edge-point + :type topology_uuid: str + :param aggregated_node_edge_point_node_uuid: Id of aggregated-node-edge-point + :type aggregated_node_edge_point_node_uuid: str + :param node_edge_point_uuid: Id of aggregated-node-edge-point + :type node_edge_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_total_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_cost_characteristiccost_name_get(uuid, node_uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_encap_topology_get(uuid, node_uuid): # noqa: E501 + """returns tapi.topology.TopologyRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiTopologyTopologyRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_get(uuid, node_uuid): # noqa: E501 + """returns tapi.topology.topology.Node + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiTopologyTopologyNodeWrapper + """ + return database.node(uuid, node_uuid) + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_latency_characteristictraffic_property_name_get(uuid, node_uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_namevalue_name_get(uuid, node_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_total_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_cost_characteristiccost_name_get(uuid, node_uuid, node_rule_group_uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.topology.NodeRuleGroup + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiTopologyNodeRuleGroupWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_associated_node_rule_grouptopology_uuidassociated_node_rule_group_node_uuidassociated_node_rule_group_node_rule_group_uuid_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, topology_uuid, associated_node_rule_group_node_uuid, associated_node_rule_group_node_rule_group_uuid): # noqa: E501 + """returns tapi.topology.NodeRuleGroupRef + + The NodeRuleGroups that the InterRuleGroup constrains interconnection between. The CEPs of the NEPs of a referenced NodeRuleGroup can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup constrained by the rules of the InterRuleGroup. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param topology_uuid: Id of associated-node-rule-group + :type topology_uuid: str + :param associated_node_rule_group_node_uuid: Id of associated-node-rule-group + :type associated_node_rule_group_node_uuid: str + :param associated_node_rule_group_node_rule_group_uuid: Id of associated-node-rule-group + :type associated_node_rule_group_node_rule_group_uuid: str + + :rtype: TapiTopologyNodeRuleGroupRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_total_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_cost_characteristiccost_name_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, cost_name): # noqa: E501 + """returns tapi.topology.CostCharacteristic + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param cost_name: Id of cost-characteristic + :type cost_name: str + + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.topology.InterRuleGroup + + Nested NodeRuleGroups may have InterRuleGroups. The Superior NodeRuleGroup contains the nested NodeRuleGroups and their associated InterRuleGroups. This is equivalent to the Node-Topology hierarchy. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiTopologyInterRuleGroupWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_latency_characteristictraffic_property_name_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_namevalue_name_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_risk_characteristicrisk_characteristic_name_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param risk_characteristic_name: Id of risk-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_cep_port_role_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.PortRoleRule + + Indicates the port role to which the rule applies. The port role is interpreted in the context of the connection type which is identified by the connection spec. The port role is not meaningful in the absence of a connection spec reference. If a node rule group carries a port role, that role applies also to the associated inter rule where the combination of the roles in the node rule groups at the ends of the inter group rule define the connection orientation. For example a root-and-leaf connection may be used in a node where a node rule group collects one set of NEPs has the port role 'root' and another node rule group collects another set of NEPs has the port role 'leaf' where these are joined by an inter rule group. This combination specifies an allowed orientation of the root-and-leaf connection. No port role statement means all port roles are allowed. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyPortRoleRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_connection_spec_reference_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.ConnectionSpecReference + + Identifies the type of connection that the rule applies to. If the attribute is not present then the rule applies to all types of connection supported by the device. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyConnectionSpecReferenceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.Rule + + The list of rules of the InterRuleGroup. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_namevalue_name_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_signal_property_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.SignalPropertyRule + + The rule only applies to signals with the properties listed. If the attribute is not present then the rule applies to all signals. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologySignalPropertyRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_total_size_get(uuid, node_uuid, node_rule_group_uuid, inter_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param inter_rule_group_uuid: Id of inter-rule-group + :type inter_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_latency_characteristictraffic_property_name_get(uuid, node_uuid, node_rule_group_uuid, traffic_property_name): # noqa: E501 + """returns tapi.topology.LatencyCharacteristic + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param traffic_property_name: Id of latency-characteristic + :type traffic_property_name: str + + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_namevalue_name_get(uuid, node_uuid, node_rule_group_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_edge_pointtopology_uuidnode_edge_point_node_uuidnode_edge_point_uuid_get(uuid, node_uuid, node_rule_group_uuid, topology_uuid, node_edge_point_node_uuid, node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + NEPs and their client CEPs that the rules apply to. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param topology_uuid: Id of node-edge-point + :type topology_uuid: str + :param node_edge_point_node_uuid: Id of node-edge-point + :type node_edge_point_node_uuid: str + :param node_edge_point_uuid: Id of node-edge-point + :type node_edge_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_rule_grouptopology_uuidnode_rule_group_node_uuidnode_rule_group_node_rule_group_uuid_get(uuid, node_uuid, node_rule_group_uuid, topology_uuid, node_rule_group_node_uuid, node_rule_group_node_rule_group_uuid): # noqa: E501 + """returns tapi.topology.NodeRuleGroupRef + + NodeRuleGroups may be nested such that finer grained rules may be applied. A nested rule group should have a subset of the NEPs of the superior rule group. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param topology_uuid: Id of node-rule-group + :type topology_uuid: str + :param node_rule_group_node_uuid: Id of node-rule-group + :type node_rule_group_node_uuid: str + :param node_rule_group_node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_node_rule_group_uuid: str + + :rtype: TapiTopologyNodeRuleGroupRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_risk_characteristicrisk_characteristic_name_get(uuid, node_uuid, node_rule_group_uuid, risk_characteristic_name): # noqa: E501 + """returns tapi.topology.RiskCharacteristic + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param risk_characteristic_name: Id of risk-characteristic + :type risk_characteristic_name: str + + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_cep_port_role_get(uuid, node_uuid, node_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.PortRoleRule + + Indicates the port role to which the rule applies. The port role is interpreted in the context of the connection type which is identified by the connection spec. The port role is not meaningful in the absence of a connection spec reference. If a node rule group carries a port role, that role applies also to the associated inter rule where the combination of the roles in the node rule groups at the ends of the inter group rule define the connection orientation. For example a root-and-leaf connection may be used in a node where a node rule group collects one set of NEPs has the port role 'root' and another node rule group collects another set of NEPs has the port role 'leaf' where these are joined by an inter rule group. This combination specifies an allowed orientation of the root-and-leaf connection. No port role statement means all port roles are allowed. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyPortRoleRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_connection_spec_reference_get(uuid, node_uuid, node_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.ConnectionSpecReference + + Identifies the type of connection that the rule applies to. If the attribute is not present then the rule applies to all types of connection supported by the device. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyConnectionSpecReferenceWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_get(uuid, node_uuid, node_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.Rule + + The list of rules of the NodeRuleGroup. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologyRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_namevalue_name_get(uuid, node_uuid, node_rule_group_uuid, local_id, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_signal_property_get(uuid, node_uuid, node_rule_group_uuid, local_id): # noqa: E501 + """returns tapi.topology.SignalPropertyRule + + The rule only applies to signals with the properties listed. If the attribute is not present then the rule applies to all signals. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + :param local_id: Id of rule + :type local_id: str + + :rtype: TapiTopologySignalPropertyRuleWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_total_size_get(uuid, node_uuid, node_rule_group_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param node_rule_group_uuid: Id of node-rule-group + :type node_rule_group_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid, topology_uuid, aggregated_node_edge_point_node_uuid, node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.NodeEdgePointRef + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param topology_uuid: Id of aggregated-node-edge-point + :type topology_uuid: str + :param aggregated_node_edge_point_node_uuid: Id of aggregated-node-edge-point + :type aggregated_node_edge_point_node_uuid: str + :param node_edge_point_uuid: Id of aggregated-node-edge-point + :type node_edge_point_uuid: str + + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.Capacity + + Capacity available to be assigned. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_total_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.topology.node.OwnedNodeEdgePoint + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiTopologyNodeOwnedNodeEdgePointWrapper + """ + return database.node_edge_point(uuid, node_uuid, owned_node_edge_point_uuid) + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_mapped_service_interface_pointservice_interface_point_uuid_get(uuid, node_uuid, owned_node_edge_point_uuid, service_interface_point_uuid): # noqa: E501 + """returns tapi.common.ServiceInterfacePointRef + + NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param service_interface_point_uuid: Id of mapped-service-interface-point + :type service_interface_point_uuid: str + + :rtype: TapiCommonServiceInterfacePointRefWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_namevalue_name_get(uuid, node_uuid, owned_node_edge_point_uuid, value_name): # noqa: E501 + """returns tapi.common.NameAndValue + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + :param value_name: Id of name + :type value_name: str + + :rtype: TapiCommonNameAndValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_total_size_get(uuid, node_uuid, owned_node_edge_point_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + :param owned_node_edge_point_uuid: Id of owned-node-edge-point + :type owned_node_edge_point_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.BandwidthProfile + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonBandwidthProfileWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + none # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.Capacity + + An optimistic view of the capacity of the TopologicalEntity assuming that any shared capacity is available to be taken. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityWrapper + """ + return 'do some magic!' + + +def data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_total_size_get(uuid, node_uuid): # noqa: E501 + """returns tapi.common.CapacityValue + + Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile, this is expected to same as the committedInformationRate. # noqa: E501 + + :param uuid: Id of topology + :type uuid: str + :param node_uuid: Id of node + :type node_uuid: str + + :rtype: TapiCommonCapacityValueWrapper + """ + return 'do some magic!' + + +def operations_tapi_topologyget_link_details_post(body=None): # noqa: E501 + """operates on tapi.topology.GetLinkDetails + + operates on tapi.topology.GetLinkDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiTopologyGetLinkDetails + """ + if connexion.request.is_json: + body = OperationsTapitopologygetlinkdetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + + return TapiTopologyGetLinkDetails(TapiTopologyGetlinkdetailsOutput( + database.link(body.input.topology_id_or_name, body.input.link_id_or_name))) + + +def operations_tapi_topologyget_node_details_post(body=None): # noqa: E501 + """operates on tapi.topology.GetNodeDetails + + operates on tapi.topology.GetNodeDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiTopologyGetNodeDetails + """ + if connexion.request.is_json: + body = OperationsTapitopologygetnodedetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + return TapiTopologyGetNodeDetails(TapiTopologyGetnodedetailsOutput( + database.node(body.input.topology_id_or_name, + body.input.node_id_or_name))) + + +def operations_tapi_topologyget_node_edge_point_details_post(body=None): # noqa: E501 + """operates on tapi.topology.GetNodeEdgePointDetails + + operates on tapi.topology.GetNodeEdgePointDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiTopologyGetNodeEdgePointDetails + """ + if connexion.request.is_json: + body = OperationsTapitopologygetnodeedgepointdetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + + return TapiTopologyGetNodeEdgePointDetails(TapiTopologyGetnodeedgepointdetailsOutput( + database.node_edge_point(body.input.topology_id_or_name, + body.input.node_id_or_name, + body.input.nep_id_or_name))) + + +def operations_tapi_topologyget_topology_details_post(body=None): # noqa: E501 + """operates on tapi.topology.GetTopologyDetails + + operates on tapi.topology.GetTopologyDetails # noqa: E501 + + :param body: + :type body: dict | bytes + + :rtype: TapiTopologyGetTopologyDetails + """ + if connexion.request.is_json: + body = OperationsTapitopologygettopologydetailsBody.from_dict(connexion.request.get_json()) # noqa: E501 + + return TapiTopologyGetTopologyDetails(TapiTopologyGettopologydetailsOutput( + database.topology(body.input.topology_id_or_name))) + + +def operations_tapi_topologyget_topology_list_post(): # noqa: E501 + """operations_tapi_topologyget_topology_list_post + + # noqa: E501 + + + :rtype: TapiTopologyGetTopologyList + """ + return TapiTopologyGetTopologyList(TapiTopologyGettopologylistOutput( + database.topology_list())) diff --git a/hackfest/tapi/server/tapi_server/database.py b/hackfest/tapi/server/tapi_server/database.py new file mode 100644 index 0000000000000000000000000000000000000000..1e3e3da6a6398f1f4114fcdaaf144bb493e6486b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/database.py @@ -0,0 +1,206 @@ +#!/usr/bin/env python3 + +from tapi_server.models.tapi_common_context import TapiCommonContext +from tapi_server.models.tapi_connectivity_cep_list import TapiConnectivityCepList +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext + +context = TapiCommonContext() + +def service_interface_point_list (): + """Retrieve all ServiceInterfacePoints + + :rtype: List(ServiceInterfacePoint) + """ + return context.service_interface_point + + +def service_interface_point (sip_uuid): + """Retrieve ServiceInterfacePoint by ID + + :param sip_uuid: ID of ServiceInterfacePoint + :type sip_uuid: str + + :rtype: ServiceInterfacePoint + """ + for sip in context.service_interface_point: + if sip.uuid == sip_uuid: + return sip + + +def topology_list (): + """Retrieve all Topology + + :rtype: List(Topology) + """ + return context.topology_context.topology + + +def topology (topo_uuid): + """Retrieve Topology by ID + + :param topo_uuid: ID of Topology + :type topo_uuid: str + + :rtype: Topology + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + return topo + + +def node (topo_uuid, node_uuid): + """Retrieve Node by ID + + :param topo_uuid: ID of Topology + :type topo_uuid: str + :param node_uuid: ID of Node + :type node_uuid: str + + :rtype: Node + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + for node in topo.node: + if node.uuid == node_uuid: + return node + + +def link (topo_uuid, link_uuid): + """Retrieve Link by ID + + :param topo_uuid: ID of Topology + :type topo_uuid: str + :param link_uuid: ID of Link + :type link_uuid: str + + :rtype: Link + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + for link in topo.link: + if link.uuid == link_uuid: + return link + + +def node_edge_point (topo_uuid, node_uuid, nep_uuid): + """Retrieve NodeEdgePoint by ID + + :param topo_uuid: ID of Topology + :type uuid: str + :param node_uuid: ID of Node + :type node_uuid: str + :param nep_uuid: ID of NodeEdgePoint + :type nep_uuid: str + + :rtype: NodeEdgePoint + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + for node in topo.node: + if node.uuid == node_uuid: + for nep in node.owned_node_edge_point: + if nep.uuid == nep_uuid: + return nep + +def connection_end_point_list (topo_uuid, node_uuid, nep_uuid): + """Retrieve NodeEdgePoint by ID + + :param topo_uuid: ID of Topology + :type uuid: str + :param node_uuid: ID of Node + :type node_uuid: str + :param nep_uuid: ID of NodeEdgePoint + :type nep_uuid: str + + :rtype: List[ConnectionEndPoint] + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + for node in topo.node: + if node.uuid == node_uuid: + for nep in node.owned_node_edge_point: + if nep.uuid == nep_uuid: + if not hasattr(nep, "cep_list"): + nep.cep_list = TapiConnectivityCepList(connection_end_point=[]) + return nep.cep_list.connection_end_point + +def connection_end_point (topo_uuid, node_uuid, nep_uuid, cep_uuid): + """Retrieve NodeEdgePoint by ID + + :param topo_uuid: ID of Topology + :type uuid: str + :param node_uuid: ID of Node + :type node_uuid: str + :param nep_uuid: ID of NodeEdgePoint + :type nep_uuid: str + :param cep_uuid: ID of ConnectionEndPoint + :type cep_uuid: str + + :rtype: ConnectionEndPoint + """ + for topo in context.topology_context.topology: + if topo.uuid == topo_uuid: + for node in topo.node: + if node.uuid == node_uuid: + for nep in node.owned_node_edge_point: + if nep.uuid == nep_uuid: + if not hasattr(nep, "cep_list"): + nep.cep_list = TapiConnectivityCepList(connection_end_point=[]) + for cep in nep.cep_list.connection_end_point: + if cep.uuid == cep_uuid: + return cep + +def connectivity_context (): + """Retrieve ConnectivityContext + + :rtype: TapiConnectivityConnectivityContext + """ + if context.connectivity_context is None: + context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + return context.connectivity_context + +def connectivity_service_list (): + """Retrieve all ConnectivityService + + :rtype: List(ConnectivityService) + """ + if context.connectivity_context is None: + context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + return context.connectivity_context.connectivity_service + + +def connectivity_service (cs_uuid): + """Retrieve ConnectivityService by ID + + :param cs_uuid: ID of ConnectivityService + :type cs_uuid: str + + :rtype: Topology + """ + if context.connectivity_context is None: + context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + for cs in context.connectivity_context.connectivity_service: + if cs.uuid == cs_uuid: + return cs + +def connection (conn_uuid): + """Retrieve Connection by ID + + :param conn_uuid: ID of Connection + :type conn_uuid: str + + :rtype: Connection + """ + if context.connectivity_context is None: + context.connectivity_context = TapiConnectivityConnectivityContext( + connectivity_service=[], connection=[] + ) + for conn in context.connectivity_context.connection: + if conn.uuid == conn_uuid: + return conn diff --git a/hackfest/tapi/server/tapi_server/database/mini-ols-context.json b/hackfest/tapi/server/tapi_server/database/mini-ols-context.json new file mode 100644 index 0000000000000000000000000000000000000000..59a4fb7cfb54df9a101ac5eda848f36553791704 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/database/mini-ols-context.json @@ -0,0 +1,728 @@ +{ + "uuid": "ols-ctx", + "service-interface-point": [ + { + "uuid": "node-4-port-16-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-3-port-16-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-1-port-14-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-14-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-13-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-18-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-2-port-15-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-2-port-17-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-1-port-15-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-2-port-13-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-13-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-13-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-1-port-17-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-13-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-3-port-17-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-1-port-13-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-15-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-14-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-17-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-2-port-14-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-14-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-17-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-1-port-17-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-4-port-16-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-14-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-1-port-14-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-1-port-13-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-2-port-14-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-3-port-15-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-3-port-16-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-18-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-4-port-17-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-3-port-15-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-2-port-15-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + }, + { + "uuid": "node-2-port-17-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-2-port-13-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-4-port-15-input", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "INPUT" + }, + { + "uuid": "node-1-port-15-output", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "direction": "OUTPUT" + } + ], + "topology-context": { + "nw-topology-service": { + "uuid": "ols-ctx", + "topology": [{"topology-uuid": "ols-topo"}] + }, + "topology": [ + { + "uuid": "ols-topo", + "layer-protocol-name": ["PHOTONIC_MEDIA", "DSR"], + "node": [ + { + "uuid": "node-1", + "owned-node-edge-point": [ + { + "uuid": "node-1-port-13", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-1-port-13-output"}, + {"service-interface-point-uuid": "node-1-port-13-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-1-port-14", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-1-port-14-output"}, + {"service-interface-point-uuid": "node-1-port-14-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-1-port-15", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-1-port-15-input"}, + {"service-interface-point-uuid": "node-1-port-15-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-1-port-17", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-1-port-17-input"}, + {"service-interface-point-uuid": "node-1-port-17-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-1-port-3", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-1-port-4", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + }, + { + "uuid": "node-2", + "owned-node-edge-point": [ + { + "uuid": "node-2-port-13", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-2-port-13-output"}, + {"service-interface-point-uuid": "node-2-port-13-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-2-port-14", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-2-port-14-input"}, + {"service-interface-point-uuid": "node-2-port-14-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-2-port-15", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-2-port-15-input"}, + {"service-interface-point-uuid": "node-2-port-15-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-2-port-17", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-2-port-17-output"}, + {"service-interface-point-uuid": "node-2-port-17-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-2-port-3", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-2-port-4", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + }, + { + "uuid": "node-3", + "owned-node-edge-point": [ + { + "uuid": "node-3-port-13", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-13-input"}, + {"service-interface-point-uuid": "node-3-port-13-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-14", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-14-input"}, + {"service-interface-point-uuid": "node-3-port-14-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-15", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-15-output"}, + {"service-interface-point-uuid": "node-3-port-15-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-16", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-16-output"}, + {"service-interface-point-uuid": "node-3-port-16-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-17", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-17-output"}, + {"service-interface-point-uuid": "node-3-port-17-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-18", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-3-port-18-output"}, + {"service-interface-point-uuid": "node-3-port-18-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-3-port-1", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-3-port-2", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-3-port-4", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + }, + { + "uuid": "node-4", + "owned-node-edge-point": [ + { + "uuid": "node-4-port-13", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-4-port-13-output"}, + {"service-interface-point-uuid": "node-4-port-13-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-4-port-14", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-4-port-14-input"}, + {"service-interface-point-uuid": "node-4-port-14-output"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-4-port-15", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-4-port-15-output"}, + {"service-interface-point-uuid": "node-4-port-15-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-4-port-16", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-4-port-16-output"}, + {"service-interface-point-uuid": "node-4-port-16-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-4-port-17", + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": [ + {"service-interface-point-uuid": "node-4-port-17-output"}, + {"service-interface-point-uuid": "node-4-port-17-input"} + ], + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"] + }, + { + "uuid": "node-4-port-1", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-4-port-2", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + { + "uuid": "node-4-port-3", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": ["tapi-photonic-media:PHOTONIC_LAYER_QUALIFIER_NMC"], + "link-port-direction": "UNIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + } + ], + "link": [ + { + "uuid": "link-1:3-3:1", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-1", "node-edge-point-uuid": "node-1-port-3"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-1"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-1:4-4:1", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-1", "node-edge-point-uuid": "node-1-port-4"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-1"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-2:3-3:2", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-2", "node-edge-point-uuid": "node-2-port-3"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-2"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-2:4-4:2", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-2", "node-edge-point-uuid": "node-2-port-4"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-2"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-3:1-1:3", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-1"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-1", "node-edge-point-uuid": "node-1-port-3"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-3:2-2:3", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-2"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-2", "node-edge-point-uuid": "node-2-port-3"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-3:4-4:3", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-4"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-3"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-4:1-1:4", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-1"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-1", "node-edge-point-uuid": "node-1-port-4"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-4:2-2:4", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-2"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-2", "node-edge-point-uuid": "node-2-port-4"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + }, + { + "uuid": "link-4:3-3:4", + "direction": "UNIDIRECTIONAL", + "cost-characteristic": [{"cost-name": "te-metric", "cost-value": 1}], + "node-edge-point": [ + {"topology-uuid": "ols-topo", "node-uuid": "node-4", "node-edge-point-uuid": "node-4-port-3"}, + {"topology-uuid": "ols-topo", "node-uuid": "node-3", "node-edge-point-uuid": "node-3-port-4"} + ], + "layer-protocol-name": ["PHOTONIC_MEDIA"] + } + ] + } + ] + }, + "connectivity-context": { + "connectivity-service": [], + "connection": [] + } +} diff --git a/hackfest/tapi/server/tapi_server/database/odu_context.json b/hackfest/tapi/server/tapi_server/database/odu_context.json new file mode 100644 index 0000000000000000000000000000000000000000..20f4c96a5e0a2a7be15d96fee188a5bf3a2d9652 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/database/odu_context.json @@ -0,0 +1,1817 @@ +{ + "uuid": "ctx-ref", + "name": + [ + { + "value-name": "name", + "value": "REFERENCE_CONTEXT" + } + ], + + "service-interface-point": + [ + { + "uuid": "sip-pe1-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_UNI_01" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + }, + + { + "uuid": "sip-pe1-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_01_UNI_02" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + }, + + { + "uuid": "sip-pe2-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_02_UNI_01" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + }, + + { + "uuid": "sip-pe2-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_UNI_02" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + }, + + { + "uuid": "sip-pe3-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_03_UNI_01" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + }, + + { + "uuid": "sip-pe3-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_03_UNI_02" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + } + } + ], + + "topology-context": { + "topology": + [ + { + "uuid": "topo-nwk", + "name": + [ + { + "value-name": "name", + "value": "NETWORK_TOPOLOGY" + } + ], + + "node": + [ + { + "uuid": "node-mul-pe-1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_MULTILAYER_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "encap-topology": "/restconf/config/context/topology/topo-pe1", + "owned-node-edge-point": + [ + + ], + + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-uni1", + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-uni2", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni1", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni2" + ] + }, + + { + "uuid": "node-mul-pe-2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_MULTILAYER_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "encap-topology": "/restconf/config/context/topology/topo-pe2", + "owned-node-edge-point": + [ + + ], + + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-uni1", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-uni2", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni1", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni2" + ] + }, + + { + "uuid": "node-mul-pe-3", + "name": + [ + { + "value-name": "name", + "value": "PE_03_MULTILAYER_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "encap-topology": "/restconf/config/context/topology/topo-pe3", + "owned-node-edge-point": + [ + + ], + + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe3/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-uni1", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-uni2", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni1", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni2", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni3" + ] + }, + + { + "uuid": "node-odu-pi-4", + "name": + [ + { + "value-name": "name", + "value": "PI_04_ODU_NODE" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni1", + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni2", + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni3" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pi4-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PI_04_ODU4_NNI_01" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pi4-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PI_04_ODU4_NNI_02" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pi4-odu4-nni3", + "name": + [ + { + "value-name": "name", + "value": "PI_04_ODU4_NNI_03" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + } + ], + + "link": + [ + { + "uuid": "link-pe1-odu4-nni1-pi4-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU4_NNI_01-PI_04_ODU4_NNI_02" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "90", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni1", + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni2" + ] + }, + + { + "uuid": "link-pe2-odu4-nni2-pi4-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU4_NNI_02-PI_04_ODU4_NNI_01" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "90", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni2", + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni1" + ] + }, + + { + "uuid": "link-pe3-odu4-nni3-pi4-odu4-nni3", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ODU4_NNI_03-PI_04_ODU4_NNI_03" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni3", + "/restconf/config/context/topology/topo-nwk/node/node-odu-pi-4/owned-node-edge-point/nep-pi4-odu4-nni3" + ] + }, + + { + "uuid": "link-pe1-odu4-nni2-pe3-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU4_NNI_02-PE_03_ODU4_NNI_01" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni2", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni1" + ] + }, + + { + "uuid": "link-pe2-odu4-nni1-pe3-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU4_NNI_01-PE_03_ODU4_NNI_02" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "100", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni1", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni2" + ] + }, + + { + "uuid": "link-pe1-odu2-nni1-pe2-odu2-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU2_NNI_01-PE_02_ODU2_NNI_02" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "3" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "3" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu2-nni1", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu2-nni2" + ] + }, + + { + "uuid": "link-pe1-odu2-clt1-pe2-odu2-clt1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU2_CLT_01-PE_02_ODU2_CLT_01" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "10", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "0", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "5" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "7" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-odu2-clt1", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-odu2-clt1" + ] + } + ] + }, + + { + "uuid": "topo-pe1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_INTERNAL_TOPOLOGY" + } + ], + + "node": + [ + { + "uuid": "node-eth-pe-1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ETH_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-uni1", + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-uni2", + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-pool", + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-odu2-clt1" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe1-eth-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ETH_UNI_01" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe1-uni1" + ] + }, + + { + "uuid": "nep-pe1-eth-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ETH_UNI_02" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe1-uni2" + ] + }, + + { + "uuid": "nep-pe1-eth-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ETH_NEP_POOL" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-odu2-clt1" + ] + }, + + { + "uuid": "nep-pe1-odu2-clt1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU2_CLT_01" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + }, + + { + "uuid": "node-odu-pe-1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU_NODE" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni1", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu4-nni2", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu2-nni1", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu2-pool" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe1-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU4_NNI_01" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe1-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU4_NNI_02" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe1-odu2-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU2_NNI_01" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe1-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ODU2_TTP_POOL" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + } + ], + + "link": + [ + { + "uuid": "link-pe1-eth-pool-pe1-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_01_ETH_POOL-PE_01_ODU2_POOL" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "200", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "190", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "2" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe1/node/node-eth-pe-1/owned-node-edge-point/nep-pe1-eth-pool", + "/restconf/config/context/topology/topo-pe1/node/node-odu-pe-1/owned-node-edge-point/nep-pe1-odu2-pool" + ] + } + ] + }, + + { + "uuid": "topo-pe2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_INTERNAL_TOPOLOGY" + } + ], + + "node": + [ + { + "uuid": "node-eth-pe-2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ETH_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-uni1", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-uni2", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-pool", + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-odu2-clt1" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe2-eth-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ETH_UNI_01" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe2-uni1" + ] + }, + + { + "uuid": "nep-pe2-eth-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ETH_UNI_02" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe2-uni2" + ] + }, + + { + "uuid": "nep-pe2-eth-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ETH_NEP_POOL" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-odu2-clt1" + ] + }, + + { + "uuid": "nep-pe2-odu2-clt1", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU2_CLT_01" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + }, + + { + "uuid": "node-odu-pe-2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU_NODE" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni1", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu4-nni2", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu2-nni1", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu2-pool" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe2-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU4_NNI_01" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe2-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU4_NNI_02" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe2-odu2-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU2_NNI_02" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe2-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ODU2_TTP_POOL" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + } + ], + + "link": + [ + { + "uuid": "link-pe2-eth-pool-pe2-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_02_ETH_POOL-PE_02_ODU2_POOL" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "200", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "190", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "2" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe2/node/node-eth-pe-2/owned-node-edge-point/nep-pe2-eth-pool", + "/restconf/config/context/topology/topo-pe2/node/node-odu-pe-2/owned-node-edge-point/nep-pe2-odu2-pool" + ] + } + ] + }, + + { + "uuid": "topo-pe3", + "name": + [ + { + "value-name": "name", + "value": "PE_03_INTERNAL_TOPOLOGY" + } + ], + + "node": + [ + { + "uuid": "node-eth-pe-3", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ETH_NODE" + } + ], + + "layer-protocol-name": + [ + "ETH" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe3/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-uni1", + "/restconf/config/context/topology/topo-pe3/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-uni2", + "/restconf/config/context/topology/topo-pe3/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-pool" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe3-eth-uni1", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ETH_UNI_01" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe3-uni1" + ] + }, + + { + "uuid": "nep-pe3-eth-uni2", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ETH_UNI_02" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "mapped-service-interface-point": + [ + "/restconf/config/context/service-interface-point/sip-pe3-uni2" + ] + }, + + { + "uuid": "nep-pe3-eth-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ETH_NEP_POOL" + } + ], + + "layer-protocol-name": "ETH", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC", + "aggregated-node-edge-point": + [ + + ] + } + ] + }, + + { + "uuid": "node-odu-pe-3", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ODU_NODE" + } + ], + + "layer-protocol-name": + [ + "ODU" + ], + + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "aggregated-node-edge-point": + [ + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni1", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu4-nni2", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu2-pool" + ], + + "owned-node-edge-point": + [ + { + "uuid": "nep-pe3-odu4-nni1", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ODU4_NNI_01" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe3-odu4-nni2", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ODU4_NNI_02" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + }, + + { + "uuid": "nep-pe3-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ODU2_TTP_POOL" + } + ], + + "layer-protocol-name": "ODU", + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "BIDIRECTIONAL", + "link-port-role": "SYMMETRIC" + } + ] + } + ], + + "link": + [ + { + "uuid": "link-pe3-eth-pool-pe3-odu2-pool", + "name": + [ + { + "value-name": "name", + "value": "PE_03_ETH_POOL-PE_03_ODU2_POOL" + } + ], + + "layer-protocol-name": + [ + "ETH", + "ODU" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": + { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + + "total-potential-capacity": + { + "total-size": + { + "value": "200", + "unit": "GBPS" + } + }, + + "available-capacity": + { + "total-size": + { + "value": "200", + "unit": "GBPS" + } + }, + + "cost-characteristic": + [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + + "latency-characteristic": + [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "2" + } + ], + + "node-edge-point": + [ + "/restconf/config/context/topology/topo-pe3/node/node-eth-pe-3/owned-node-edge-point/nep-pe3-eth-pool", + "/restconf/config/context/topology/topo-pe3/node/node-odu-pe-3/owned-node-edge-point/nep-pe3-odu2-pool" + ] + } + ] + } + ] + }, + + "connection": + [ + + ], + + "connectivity-service": + [ + + ] +} \ No newline at end of file diff --git a/hackfest/tapi/server/tapi_server/database/ols_context.json b/hackfest/tapi/server/tapi_server/database/ols_context.json new file mode 100644 index 0000000000000000000000000000000000000000..a85e6da73cb61564952cdd6855b62f0078c5a992 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/database/ols_context.json @@ -0,0 +1,720 @@ +{ + "uuid": "ctx-ols", + "name": [ + { + "value-name": "name", + "value": "OLS_DOMAIN" + } + ], + "service-interface-point": [ + { + "uuid": "sip-nni-1", + "name": [ + { + "value-name": "name", + "value": "RDM_1_ADD_DROP_INTERFACES" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "supported-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_NMCA" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + } + }, + { + "uuid": "sip-nni-2", + "name": [ + { + "value-name": "name", + "value": "ROADM_2_ADD_DROP_INTERFACES" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "supported-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_NMCA" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + } + }, + { + "uuid": "sip-nni-3", + "name": [ + { + "value-name": "name", + "value": "ROADM_3_ADD_DROP_INTERFACES" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "supported-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_NMCA" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + } + } + ], + "topology-context": { + "topology": [ + { + "uuid": "top-ols", + "name": [ + { + "value-name": "name", + "value": "OLS_TOPOLOGY" + } + ], + "node": [ + { + "uuid": "node-rdm-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_1" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "owned-node-edge-point": [ + { + "uuid": "nep-rdm-1-adddrp-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_1_ADD_DROP_PORT_1" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OMS" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [ + { + "service-interface-point-uuid": "sip-nni-1" + } + ] + }, + { + "uuid": "nep-rdm-1-deg-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_1_DEGREE_PORT" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + } + ], + "aggregated-node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-1", + "node-edge-point-uuid": "nep-rdm-1-adddrp-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-1", + "node-edge-point-uuid": "nep-rdm-1-deg-1" + } + ] + }, + { + "uuid": "node-rdm-2", + "name": [ + { + "value-name": "name", + "value": "ROADM_2" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "owned-node-edge-point": [ + { + "uuid": "nep-rdm-2-adddrp-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_2_ADD_DROP_PORT_1" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OMS" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [ + { + "service-interface-point-uuid": "sip-nni-2" + } + ] + }, + { + "uuid": "nep-rdm-2-deg-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_2_DEGREE_PORT" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + } + ], + "aggregated-node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-2", + "node-edge-point-uuid": "nep-rdm-2-adddrp-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-2", + "node-edge-point-uuid": "nep-rdm-2-deg-1" + } + ] + }, + { + "uuid": "node-rdm-3", + "name": [ + { + "value-name": "name", + "value": "ROADM_3" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "owned-node-edge-point": [ + { + "uuid": "nep-rdm-3-adddrp-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_3_ADD_DROP_PORT_1" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OMS" + ], + "total-potential-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "100", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [ + { + "service-interface-point-uuid": "sip-nni-3" + } + ] + }, + { + "uuid": "nep-rdm-3-deg-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_3_DEGREE_PORT" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + } + ], + "aggregated-node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-3", + "node-edge-point-uuid": "nep-rdm-3-adddrp-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-3", + "node-edge-point-uuid": "nep-rdm-3-deg-1" + } + ] + }, + { + "uuid": "node-rdm-4", + "name": [ + { + "value-name": "name", + "value": "ROADM_4" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "owned-node-edge-point": [ + { + "uuid": "nep-rdm-4-deg-1", + "name": [ + { + "value-name": "name", + "value": "ROADM_4_DEGREE_PORT_1" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + }, + { + "uuid": "nep-rdm-4-deg-2", + "name": [ + { + "value-name": "name", + "value": "ROADM_4_DEGREE_PORT_2" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + }, + { + "uuid": "nep-rdm-4-deg-3", + "name": [ + { + "value-name": "name", + "value": "ROADM_4_DEGREE_PORT_3" + } + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "termination-state": "LP_CAN_NEVER_TERMINATE", + "termination-direction": "BIDIRECTIONAL", + "link-port-direction": "UNIDENTIFIED_OR_UNKNOWN", + "link-port-role": "UNKNOWN", + "layer-protocol-name": "PHOTONIC_MEDIA", + "supported-cep-layer-protocol-qualifier": [ + "PHOTONIC_LAYER_QUALIFIER_OTS" + ], + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "mapped-service-interface-point": [] + } + ], + "aggregated-node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-2" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-3" + } + ] + } + ], + "link": [ + { + "uuid": "link-rdm-1-deg-1-rdm-4-deg-1", + "name": [ + { + "value-name": "name", + "value": "RDM_1_DEG_1_RDM_4_DEG_1" + } + ], + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "cost-characteristic": [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + "latency-characteristic": [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + "node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-1", + "node-edge-point-uuid": "nep-rdm-1-deg-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-1" + } + ] + }, + { + "uuid": "link-rdm-2-deg-1-rdm-4-deg-2", + "name": [ + { + "value-name": "name", + "value": "RDM_2_DEG_1_RDM_4_DEG_2" + } + ], + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "cost-characteristic": [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + "latency-characteristic": [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + "node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-2", + "node-edge-point-uuid": "nep-rdm-2-deg-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-2" + } + ] + }, + { + "uuid": "link-rdm-3-deg-1-rdm-4-deg-3", + "name": [ + { + "value-name": "name", + "value": "RDM_3_DEG_1_RDM_4_DEG_3" + } + ], + "layer-protocol-name": [ + "PHOTONIC_MEDIA" + ], + "administrative-state": "UNLOCKED", + "operational-state": "ENABLED", + "lifecycle-state": "INSTALLED", + "direction": "BIDIRECTIONAL", + "resilience-type": { + "protection-type": "NO_PROTECTON", + "restoration-policy": "NA" + }, + "total-potential-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "available-capacity": { + "total-size": { + "value": "8000", + "unit": "GHz" + } + }, + "cost-characteristic": [ + { + "cost-name": "hop_count", + "cost-value": "1" + } + ], + "latency-characteristic": [ + { + "traffic-property-name": "FixedLatency", + "fixed-latency-characteristic": "1" + } + ], + "node-edge-point": [ + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-3", + "node-edge-point-uuid": "nep-rdm-3-deg-1" + }, + { + "topology-uuid": "top-ols", + "node-uuid": "node-rdm-4", + "node-edge-point-uuid": "nep-rdm-4-deg-3" + } + ] + } + ] + } + ] + }, + "connectivity-context": { + "connection": [], + "connectivity-service": [] + } +} \ No newline at end of file diff --git a/hackfest/tapi/server/tapi_server/encoder.py b/hackfest/tapi/server/tapi_server/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..482f44a6747204933187eaa533144f5927128611 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/encoder.py @@ -0,0 +1,20 @@ +from connexion.apps.flask_app import FlaskJSONEncoder +import six + +from tapi_server.models.base_model_ import Model + + +class JSONEncoder(FlaskJSONEncoder): + include_nulls = False + + def default(self, o): + if isinstance(o, Model): + dikt = {} + for attr, _ in six.iteritems(o.swagger_types): + value = getattr(o, attr) + if value is None and not self.include_nulls: + continue + attr = o.attribute_map[attr] + dikt[attr] = value + return dikt + return FlaskJSONEncoder.default(self, o) diff --git a/hackfest/tapi/server/tapi_server/models/__init__.py b/hackfest/tapi/server/tapi_server/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6dddec801015b0180a55e0f7f96d222a2be8e961 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/__init__.py @@ -0,0 +1,276 @@ +# coding: utf-8 + +# flake8: noqa +from __future__ import absolute_import +# import models into model package +from tapi_server.models.operations_tapicommongetserviceinterfacepointdetails_body import OperationsTapicommongetserviceinterfacepointdetailsBody +from tapi_server.models.operations_tapicommonupdateserviceinterfacepoint_body import OperationsTapicommonupdateserviceinterfacepointBody +from tapi_server.models.operations_tapiconnectivitycreateconnectivityservice_body import OperationsTapiconnectivitycreateconnectivityserviceBody +from tapi_server.models.operations_tapiconnectivitydeleteconnectivityservice_body import OperationsTapiconnectivitydeleteconnectivityserviceBody +from tapi_server.models.operations_tapiconnectivitygetconnectiondetails_body import OperationsTapiconnectivitygetconnectiondetailsBody +from tapi_server.models.operations_tapiconnectivitygetconnectionendpointdetails_body import OperationsTapiconnectivitygetconnectionendpointdetailsBody +from tapi_server.models.operations_tapiconnectivitygetconnectivityservicedetails_body import OperationsTapiconnectivitygetconnectivityservicedetailsBody +from tapi_server.models.operations_tapiconnectivityupdateconnectivityservice_body import OperationsTapiconnectivityupdateconnectivityserviceBody +from tapi_server.models.operations_tapinotificationcreatenotificationsubscriptionservice_body import OperationsTapinotificationcreatenotificationsubscriptionserviceBody +from tapi_server.models.operations_tapinotificationdeletenotificationsubscriptionservice_body import OperationsTapinotificationdeletenotificationsubscriptionserviceBody +from tapi_server.models.operations_tapinotificationgetnotificationlist_body import OperationsTapinotificationgetnotificationlistBody +from tapi_server.models.operations_tapinotificationgetnotificationsubscriptionservicedetails_body import OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody +from tapi_server.models.operations_tapinotificationupdatenotificationsubscriptionservice_body import OperationsTapinotificationupdatenotificationsubscriptionserviceBody +from tapi_server.models.operations_tapipathcomputationcomputep2ppath_body import OperationsTapipathcomputationcomputep2ppathBody +from tapi_server.models.operations_tapipathcomputationdeletep2ppath_body import OperationsTapipathcomputationdeletep2ppathBody +from tapi_server.models.operations_tapipathcomputationoptimizep2ppath_body import OperationsTapipathcomputationoptimizep2ppathBody +from tapi_server.models.operations_tapitopologygetlinkdetails_body import OperationsTapitopologygetlinkdetailsBody +from tapi_server.models.operations_tapitopologygetnodedetails_body import OperationsTapitopologygetnodedetailsBody +from tapi_server.models.operations_tapitopologygetnodeedgepointdetails_body import OperationsTapitopologygetnodeedgepointdetailsBody +from tapi_server.models.operations_tapitopologygettopologydetails_body import OperationsTapitopologygettopologydetailsBody +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState +from tapi_server.models.tapi_common_bandwidth_profile import TapiCommonBandwidthProfile +from tapi_server.models.tapi_common_bandwidth_profile_type import TapiCommonBandwidthProfileType +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac +from tapi_server.models.tapi_common_capacity_unit import TapiCommonCapacityUnit +from tapi_server.models.tapi_common_capacity_value import TapiCommonCapacityValue +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper +from tapi_server.models.tapi_common_context import TapiCommonContext +from tapi_server.models.tapi_common_context_wrapper import TapiCommonContextWrapper +from tapi_server.models.tapi_common_directive_value import TapiCommonDirectiveValue +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection +from tapi_server.models.tapi_common_get_service_interface_point_details import TapiCommonGetServiceInterfacePointDetails +from tapi_server.models.tapi_common_get_service_interface_point_list import TapiCommonGetServiceInterfacePointList +from tapi_server.models.tapi_common_getserviceinterfacepointdetails_input import TapiCommonGetserviceinterfacepointdetailsInput +from tapi_server.models.tapi_common_getserviceinterfacepointdetails_output import TapiCommonGetserviceinterfacepointdetailsOutput +from tapi_server.models.tapi_common_getserviceinterfacepointlist_output import TapiCommonGetserviceinterfacepointlistOutput +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState +from tapi_server.models.tapi_common_operational_state_pac import TapiCommonOperationalStatePac +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper +from tapi_server.models.tapi_common_service_interface_point_wrapper import TapiCommonServiceInterfacePointWrapper +from tapi_server.models.tapi_common_tapi_context import TapiCommonTapiContext +from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection +from tapi_server.models.tapi_common_termination_pac import TapiCommonTerminationPac +from tapi_server.models.tapi_common_termination_state import TapiCommonTerminationState +from tapi_server.models.tapi_common_time_range import TapiCommonTimeRange +from tapi_server.models.tapi_common_time_range_wrapper import TapiCommonTimeRangeWrapper +from tapi_server.models.tapi_common_updateserviceinterfacepoint_input import TapiCommonUpdateserviceinterfacepointInput +from tapi_server.models.tapi_connectivity_cep_list import TapiConnectivityCepList +from tapi_server.models.tapi_connectivity_cep_list_wrapper import TapiConnectivityCepListWrapper +from tapi_server.models.tapi_connectivity_cep_role import TapiConnectivityCepRole +from tapi_server.models.tapi_connectivity_cep_role_wrapper import TapiConnectivityCepRoleWrapper +from tapi_server.models.tapi_connectivity_connection import TapiConnectivityConnection +from tapi_server.models.tapi_connectivity_connection_end_point import TapiConnectivityConnectionEndPoint +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef +from tapi_server.models.tapi_connectivity_connection_end_point_ref_wrapper import TapiConnectivityConnectionEndPointRefWrapper +from tapi_server.models.tapi_connectivity_connection_end_point_wrapper import TapiConnectivityConnectionEndPointWrapper +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef +from tapi_server.models.tapi_connectivity_connection_ref_wrapper import TapiConnectivityConnectionRefWrapper +from tapi_server.models.tapi_connectivity_connection_spec_reference import TapiConnectivityConnectionSpecReference +from tapi_server.models.tapi_connectivity_connection_spec_reference_wrapper import TapiConnectivityConnectionSpecReferenceWrapper +from tapi_server.models.tapi_connectivity_connection_wrapper import TapiConnectivityConnectionWrapper +from tapi_server.models.tapi_connectivity_connectivity_constraint import TapiConnectivityConnectivityConstraint +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext +from tapi_server.models.tapi_connectivity_connectivity_context_wrapper import TapiConnectivityConnectivityContextWrapper +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService +from tapi_server.models.tapi_connectivity_connectivity_service_end_point import TapiConnectivityConnectivityServiceEndPoint +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref import TapiConnectivityConnectivityServiceEndPointRef +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref_wrapper import TapiConnectivityConnectivityServiceEndPointRefWrapper +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_wrapper import TapiConnectivityConnectivityServiceEndPointWrapper +from tapi_server.models.tapi_connectivity_connectivity_service_ref import TapiConnectivityConnectivityServiceRef +from tapi_server.models.tapi_connectivity_connectivity_service_ref_wrapper import TapiConnectivityConnectivityServiceRefWrapper +from tapi_server.models.tapi_connectivity_connectivity_service_wrapper import TapiConnectivityConnectivityServiceWrapper +from tapi_server.models.tapi_connectivity_context_augmentation3 import TapiConnectivityContextAugmentation3 +from tapi_server.models.tapi_connectivity_coordinate_type import TapiConnectivityCoordinateType +from tapi_server.models.tapi_connectivity_create_connectivity_service import TapiConnectivityCreateConnectivityService +from tapi_server.models.tapi_connectivity_createconnectivityservice_input import TapiConnectivityCreateconnectivityserviceInput +from tapi_server.models.tapi_connectivity_createconnectivityservice_output import TapiConnectivityCreateconnectivityserviceOutput +from tapi_server.models.tapi_connectivity_deleteconnectivityservice_input import TapiConnectivityDeleteconnectivityserviceInput +from tapi_server.models.tapi_connectivity_get_connection_details import TapiConnectivityGetConnectionDetails +from tapi_server.models.tapi_connectivity_get_connection_end_point_details import TapiConnectivityGetConnectionEndPointDetails +from tapi_server.models.tapi_connectivity_get_connectivity_service_details import TapiConnectivityGetConnectivityServiceDetails +from tapi_server.models.tapi_connectivity_get_connectivity_service_list import TapiConnectivityGetConnectivityServiceList +from tapi_server.models.tapi_connectivity_getconnectiondetails_input import TapiConnectivityGetconnectiondetailsInput +from tapi_server.models.tapi_connectivity_getconnectiondetails_output import TapiConnectivityGetconnectiondetailsOutput +from tapi_server.models.tapi_connectivity_getconnectionendpointdetails_input import TapiConnectivityGetconnectionendpointdetailsInput +from tapi_server.models.tapi_connectivity_getconnectionendpointdetails_output import TapiConnectivityGetconnectionendpointdetailsOutput +from tapi_server.models.tapi_connectivity_getconnectivityservicedetails_input import TapiConnectivityGetconnectivityservicedetailsInput +from tapi_server.models.tapi_connectivity_getconnectivityservicedetails_output import TapiConnectivityGetconnectivityservicedetailsOutput +from tapi_server.models.tapi_connectivity_getconnectivityservicelist_output import TapiConnectivityGetconnectivityservicelistOutput +from tapi_server.models.tapi_connectivity_owned_node_edge_point_augmentation1 import TapiConnectivityOwnedNodeEdgePointAugmentation1 +from tapi_server.models.tapi_connectivity_protection_role import TapiConnectivityProtectionRole +from tapi_server.models.tapi_connectivity_resilience_constraint import TapiConnectivityResilienceConstraint +from tapi_server.models.tapi_connectivity_resilience_route import TapiConnectivityResilienceRoute +from tapi_server.models.tapi_connectivity_resilience_route_wrapper import TapiConnectivityResilienceRouteWrapper +from tapi_server.models.tapi_connectivity_reversion_mode import TapiConnectivityReversionMode +from tapi_server.models.tapi_connectivity_route import TapiConnectivityRoute +from tapi_server.models.tapi_connectivity_route_ref import TapiConnectivityRouteRef +from tapi_server.models.tapi_connectivity_route_ref_wrapper import TapiConnectivityRouteRefWrapper +from tapi_server.models.tapi_connectivity_route_wrapper import TapiConnectivityRouteWrapper +from tapi_server.models.tapi_connectivity_selection_control import TapiConnectivitySelectionControl +from tapi_server.models.tapi_connectivity_selection_reason import TapiConnectivitySelectionReason +from tapi_server.models.tapi_connectivity_service_type import TapiConnectivityServiceType +from tapi_server.models.tapi_connectivity_switch import TapiConnectivitySwitch +from tapi_server.models.tapi_connectivity_switch_control import TapiConnectivitySwitchControl +from tapi_server.models.tapi_connectivity_switch_control_ref import TapiConnectivitySwitchControlRef +from tapi_server.models.tapi_connectivity_switch_control_ref_wrapper import TapiConnectivitySwitchControlRefWrapper +from tapi_server.models.tapi_connectivity_switch_control_wrapper import TapiConnectivitySwitchControlWrapper +from tapi_server.models.tapi_connectivity_switch_wrapper import TapiConnectivitySwitchWrapper +from tapi_server.models.tapi_connectivity_update_connectivity_service import TapiConnectivityUpdateConnectivityService +from tapi_server.models.tapi_connectivity_updateconnectivityservice_input import TapiConnectivityUpdateconnectivityserviceInput +from tapi_server.models.tapi_connectivity_updateconnectivityservice_output import TapiConnectivityUpdateconnectivityserviceOutput +from tapi_server.models.tapi_notification_alarm_info import TapiNotificationAlarmInfo +from tapi_server.models.tapi_notification_alarm_info_wrapper import TapiNotificationAlarmInfoWrapper +from tapi_server.models.tapi_notification_context_augmentation1 import TapiNotificationContextAugmentation1 +from tapi_server.models.tapi_notification_create_notification_subscription_service import TapiNotificationCreateNotificationSubscriptionService +from tapi_server.models.tapi_notification_createnotificationsubscriptionservice_input import TapiNotificationCreatenotificationsubscriptionserviceInput +from tapi_server.models.tapi_notification_createnotificationsubscriptionservice_output import TapiNotificationCreatenotificationsubscriptionserviceOutput +from tapi_server.models.tapi_notification_delete_notification_subscription_service import TapiNotificationDeleteNotificationSubscriptionService +from tapi_server.models.tapi_notification_deletenotificationsubscriptionservice_input import TapiNotificationDeletenotificationsubscriptionserviceInput +from tapi_server.models.tapi_notification_deletenotificationsubscriptionservice_output import TapiNotificationDeletenotificationsubscriptionserviceOutput +from tapi_server.models.tapi_notification_get_notification_list import TapiNotificationGetNotificationList +from tapi_server.models.tapi_notification_get_notification_subscription_service_details import TapiNotificationGetNotificationSubscriptionServiceDetails +from tapi_server.models.tapi_notification_get_notification_subscription_service_list import TapiNotificationGetNotificationSubscriptionServiceList +from tapi_server.models.tapi_notification_get_supported_notification_types import TapiNotificationGetSupportedNotificationTypes +from tapi_server.models.tapi_notification_getnotificationlist_input import TapiNotificationGetnotificationlistInput +from tapi_server.models.tapi_notification_getnotificationlist_output import TapiNotificationGetnotificationlistOutput +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicedetails_input import TapiNotificationGetnotificationsubscriptionservicedetailsInput +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicedetails_output import TapiNotificationGetnotificationsubscriptionservicedetailsOutput +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicelist_output import TapiNotificationGetnotificationsubscriptionservicelistOutput +from tapi_server.models.tapi_notification_getsupportednotificationtypes_output import TapiNotificationGetsupportednotificationtypesOutput +from tapi_server.models.tapi_notification_name_and_value_change import TapiNotificationNameAndValueChange +from tapi_server.models.tapi_notification_name_and_value_change_wrapper import TapiNotificationNameAndValueChangeWrapper +from tapi_server.models.tapi_notification_notification import TapiNotificationNotification +from tapi_server.models.tapi_notification_notification_channel import TapiNotificationNotificationChannel +from tapi_server.models.tapi_notification_notification_channel_wrapper import TapiNotificationNotificationChannelWrapper +from tapi_server.models.tapi_notification_notification_context import TapiNotificationNotificationContext +from tapi_server.models.tapi_notification_notification_context_wrapper import TapiNotificationNotificationContextWrapper +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService +from tapi_server.models.tapi_notification_notification_subscription_service_wrapper import TapiNotificationNotificationSubscriptionServiceWrapper +from tapi_server.models.tapi_notification_notification_type import TapiNotificationNotificationType +from tapi_server.models.tapi_notification_notification_wrapper import TapiNotificationNotificationWrapper +from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType +from tapi_server.models.tapi_notification_perceived_severity_type import TapiNotificationPerceivedSeverityType +from tapi_server.models.tapi_notification_perceived_tca_severity import TapiNotificationPerceivedTcaSeverity +from tapi_server.models.tapi_notification_service_affecting import TapiNotificationServiceAffecting +from tapi_server.models.tapi_notification_source_indicator import TapiNotificationSourceIndicator +from tapi_server.models.tapi_notification_subscription_filter import TapiNotificationSubscriptionFilter +from tapi_server.models.tapi_notification_subscription_filter_wrapper import TapiNotificationSubscriptionFilterWrapper +from tapi_server.models.tapi_notification_subscription_state import TapiNotificationSubscriptionState +from tapi_server.models.tapi_notification_tca_info import TapiNotificationTcaInfo +from tapi_server.models.tapi_notification_tca_info_wrapper import TapiNotificationTcaInfoWrapper +from tapi_server.models.tapi_notification_threshold_crossing_type import TapiNotificationThresholdCrossingType +from tapi_server.models.tapi_notification_update_notification_subscription_service import TapiNotificationUpdateNotificationSubscriptionService +from tapi_server.models.tapi_notification_updatenotificationsubscriptionservice_input import TapiNotificationUpdatenotificationsubscriptionserviceInput +from tapi_server.models.tapi_notification_updatenotificationsubscriptionservice_output import TapiNotificationUpdatenotificationsubscriptionserviceOutput +from tapi_server.models.tapi_path_computation_compute_p2_p_path import TapiPathComputationComputeP2PPath +from tapi_server.models.tapi_path_computation_computep2ppath_input import TapiPathComputationComputep2ppathInput +from tapi_server.models.tapi_path_computation_computep2ppath_output import TapiPathComputationComputep2ppathOutput +from tapi_server.models.tapi_path_computation_context_augmentation2 import TapiPathComputationContextAugmentation2 +from tapi_server.models.tapi_path_computation_delete_p2_p_path import TapiPathComputationDeleteP2PPath +from tapi_server.models.tapi_path_computation_deletep2ppath_input import TapiPathComputationDeletep2ppathInput +from tapi_server.models.tapi_path_computation_deletep2ppath_output import TapiPathComputationDeletep2ppathOutput +from tapi_server.models.tapi_path_computation_diversity_policy import TapiPathComputationDiversityPolicy +from tapi_server.models.tapi_path_computation_optimize_p2_ppath import TapiPathComputationOptimizeP2Ppath +from tapi_server.models.tapi_path_computation_optimizep2ppath_input import TapiPathComputationOptimizep2ppathInput +from tapi_server.models.tapi_path_computation_optimizep2ppath_output import TapiPathComputationOptimizep2ppathOutput +from tapi_server.models.tapi_path_computation_path import TapiPathComputationPath +from tapi_server.models.tapi_path_computation_path_computation_context import TapiPathComputationPathComputationContext +from tapi_server.models.tapi_path_computation_path_computation_context_wrapper import TapiPathComputationPathComputationContextWrapper +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService +from tapi_server.models.tapi_path_computation_path_computation_service_wrapper import TapiPathComputationPathComputationServiceWrapper +from tapi_server.models.tapi_path_computation_path_objective_function import TapiPathComputationPathObjectiveFunction +from tapi_server.models.tapi_path_computation_path_objective_function_wrapper import TapiPathComputationPathObjectiveFunctionWrapper +from tapi_server.models.tapi_path_computation_path_optimization_constraint import TapiPathComputationPathOptimizationConstraint +from tapi_server.models.tapi_path_computation_path_optimization_constraint_wrapper import TapiPathComputationPathOptimizationConstraintWrapper +from tapi_server.models.tapi_path_computation_path_ref import TapiPathComputationPathRef +from tapi_server.models.tapi_path_computation_path_ref_wrapper import TapiPathComputationPathRefWrapper +from tapi_server.models.tapi_path_computation_path_service_end_point import TapiPathComputationPathServiceEndPoint +from tapi_server.models.tapi_path_computation_path_service_end_point_wrapper import TapiPathComputationPathServiceEndPointWrapper +from tapi_server.models.tapi_path_computation_path_wrapper import TapiPathComputationPathWrapper +from tapi_server.models.tapi_path_computation_route_objective_function import TapiPathComputationRouteObjectiveFunction +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint +from tapi_server.models.tapi_path_computation_routing_constraint_wrapper import TapiPathComputationRoutingConstraintWrapper +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint +from tapi_server.models.tapi_path_computation_topology_constraint_wrapper import TapiPathComputationTopologyConstraintWrapper +from tapi_server.models.tapi_path_computation_value_or_priority import TapiPathComputationValueOrPriority +from tapi_server.models.tapi_path_computation_value_or_priority_wrapper import TapiPathComputationValueOrPriorityWrapper +from tapi_server.models.tapi_topology_connection_spec_reference import TapiTopologyConnectionSpecReference +from tapi_server.models.tapi_topology_connection_spec_reference_wrapper import TapiTopologyConnectionSpecReferenceWrapper +from tapi_server.models.tapi_topology_context_augmentation4 import TapiTopologyContextAugmentation4 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper +from tapi_server.models.tapi_topology_forwarding_rule import TapiTopologyForwardingRule +from tapi_server.models.tapi_topology_get_link_details import TapiTopologyGetLinkDetails +from tapi_server.models.tapi_topology_get_node_details import TapiTopologyGetNodeDetails +from tapi_server.models.tapi_topology_get_node_edge_point_details import TapiTopologyGetNodeEdgePointDetails +from tapi_server.models.tapi_topology_get_topology_details import TapiTopologyGetTopologyDetails +from tapi_server.models.tapi_topology_get_topology_list import TapiTopologyGetTopologyList +from tapi_server.models.tapi_topology_getlinkdetails_input import TapiTopologyGetlinkdetailsInput +from tapi_server.models.tapi_topology_getlinkdetails_output import TapiTopologyGetlinkdetailsOutput +from tapi_server.models.tapi_topology_getnodedetails_input import TapiTopologyGetnodedetailsInput +from tapi_server.models.tapi_topology_getnodedetails_output import TapiTopologyGetnodedetailsOutput +from tapi_server.models.tapi_topology_getnodeedgepointdetails_input import TapiTopologyGetnodeedgepointdetailsInput +from tapi_server.models.tapi_topology_getnodeedgepointdetails_output import TapiTopologyGetnodeedgepointdetailsOutput +from tapi_server.models.tapi_topology_gettopologydetails_input import TapiTopologyGettopologydetailsInput +from tapi_server.models.tapi_topology_gettopologydetails_output import TapiTopologyGettopologydetailsOutput +from tapi_server.models.tapi_topology_gettopologylist_output import TapiTopologyGettopologylistOutput +from tapi_server.models.tapi_topology_inter_rule_group import TapiTopologyInterRuleGroup +from tapi_server.models.tapi_topology_inter_rule_group_wrapper import TapiTopologyInterRuleGroupWrapper +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper +from tapi_server.models.tapi_topology_layer_protocol_transition_pac import TapiTopologyLayerProtocolTransitionPac +from tapi_server.models.tapi_topology_link import TapiTopologyLink +from tapi_server.models.tapi_topology_link_ref import TapiTopologyLinkRef +from tapi_server.models.tapi_topology_link_ref_wrapper import TapiTopologyLinkRefWrapper +from tapi_server.models.tapi_topology_link_wrapper import TapiTopologyLinkWrapper +from tapi_server.models.tapi_topology_network_topology_service import TapiTopologyNetworkTopologyService +from tapi_server.models.tapi_topology_network_topology_service_wrapper import TapiTopologyNetworkTopologyServiceWrapper +from tapi_server.models.tapi_topology_node import TapiTopologyNode +from tapi_server.models.tapi_topology_node_edge_point import TapiTopologyNodeEdgePoint +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef +from tapi_server.models.tapi_topology_node_edge_point_ref_wrapper import TapiTopologyNodeEdgePointRefWrapper +from tapi_server.models.tapi_topology_node_owned_node_edge_point import TapiTopologyNodeOwnedNodeEdgePoint +from tapi_server.models.tapi_topology_node_owned_node_edge_point_wrapper import TapiTopologyNodeOwnedNodeEdgePointWrapper +from tapi_server.models.tapi_topology_node_ref import TapiTopologyNodeRef +from tapi_server.models.tapi_topology_node_rule_group import TapiTopologyNodeRuleGroup +from tapi_server.models.tapi_topology_node_rule_group_ref import TapiTopologyNodeRuleGroupRef +from tapi_server.models.tapi_topology_node_rule_group_ref_wrapper import TapiTopologyNodeRuleGroupRefWrapper +from tapi_server.models.tapi_topology_node_rule_group_wrapper import TapiTopologyNodeRuleGroupWrapper +from tapi_server.models.tapi_topology_port_role_rule import TapiTopologyPortRoleRule +from tapi_server.models.tapi_topology_port_role_rule_wrapper import TapiTopologyPortRoleRuleWrapper +from tapi_server.models.tapi_topology_protection_type import TapiTopologyProtectionType +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType +from tapi_server.models.tapi_topology_resilience_type_wrapper import TapiTopologyResilienceTypeWrapper +from tapi_server.models.tapi_topology_restoration_policy import TapiTopologyRestorationPolicy +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper +from tapi_server.models.tapi_topology_risk_parameter_pac import TapiTopologyRiskParameterPac +from tapi_server.models.tapi_topology_rule import TapiTopologyRule +from tapi_server.models.tapi_topology_rule_type import TapiTopologyRuleType +from tapi_server.models.tapi_topology_rule_wrapper import TapiTopologyRuleWrapper +from tapi_server.models.tapi_topology_signal_property_rule import TapiTopologySignalPropertyRule +from tapi_server.models.tapi_topology_signal_property_rule_wrapper import TapiTopologySignalPropertyRuleWrapper +from tapi_server.models.tapi_topology_topology import TapiTopologyTopology +from tapi_server.models.tapi_topology_topology_context import TapiTopologyTopologyContext +from tapi_server.models.tapi_topology_topology_context_wrapper import TapiTopologyTopologyContextWrapper +from tapi_server.models.tapi_topology_topology_node import TapiTopologyTopologyNode +from tapi_server.models.tapi_topology_topology_node_wrapper import TapiTopologyTopologyNodeWrapper +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef +from tapi_server.models.tapi_topology_topology_ref_wrapper import TapiTopologyTopologyRefWrapper +from tapi_server.models.tapi_topology_topology_wrapper import TapiTopologyTopologyWrapper +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac +from tapi_server.models.tapi_topology_transfer_integrity_pac import TapiTopologyTransferIntegrityPac +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac +from tapi_server.models.tapi_topology_validation_mechanism import TapiTopologyValidationMechanism +from tapi_server.models.tapi_topology_validation_mechanism_wrapper import TapiTopologyValidationMechanismWrapper +from tapi_server.models.tapi_topology_validation_pac import TapiTopologyValidationPac diff --git a/hackfest/tapi/server/tapi_server/models/base_model_.py b/hackfest/tapi/server/tapi_server/models/base_model_.py new file mode 100644 index 0000000000000000000000000000000000000000..8274e46d4ed03120aad7c3a501cc1aa63caf784a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/base_model_.py @@ -0,0 +1,69 @@ +import pprint + +import six +import typing + +from tapi_server import util + +T = typing.TypeVar('T') + + +class Model(object): + # swaggerTypes: The key is attribute name and the + # value is attribute type. + swagger_types = {} + + # attributeMap: The key is attribute name and the + # value is json key in definition. + attribute_map = {} + + @classmethod + def from_dict(cls: typing.Type[T], dikt) -> T: + """Returns the dict as a model""" + return util.deserialize_model(dikt, cls) + + def to_dict(self): + """Returns the model properties as a dict + + :rtype: dict + """ + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model + + :rtype: str + """ + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapicommongetserviceinterfacepointdetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapicommongetserviceinterfacepointdetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..7aedb617cd747956699e865fcd36b36760df40f4 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapicommongetserviceinterfacepointdetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_getserviceinterfacepointdetails_input import TapiCommonGetserviceinterfacepointdetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapicommongetserviceinterfacepointdetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiCommonGetserviceinterfacepointdetailsInput=None): # noqa: E501 + """OperationsTapicommongetserviceinterfacepointdetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapicommongetserviceinterfacepointdetailsBody. # noqa: E501 + :type input: TapiCommonGetserviceinterfacepointdetailsInput + """ + self.swagger_types = { + 'input': TapiCommonGetserviceinterfacepointdetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapicommongetserviceinterfacepointdetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapicommongetserviceinterfacepointdetails_body of this OperationsTapicommongetserviceinterfacepointdetailsBody. # noqa: E501 + :rtype: OperationsTapicommongetserviceinterfacepointdetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiCommonGetserviceinterfacepointdetailsInput: + """Gets the input of this OperationsTapicommongetserviceinterfacepointdetailsBody. + + + :return: The input of this OperationsTapicommongetserviceinterfacepointdetailsBody. + :rtype: TapiCommonGetserviceinterfacepointdetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiCommonGetserviceinterfacepointdetailsInput): + """Sets the input of this OperationsTapicommongetserviceinterfacepointdetailsBody. + + + :param input: The input of this OperationsTapicommongetserviceinterfacepointdetailsBody. + :type input: TapiCommonGetserviceinterfacepointdetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapicommonupdateserviceinterfacepoint_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapicommonupdateserviceinterfacepoint_body.py new file mode 100644 index 0000000000000000000000000000000000000000..2e5574299100758bd6ffb18bec9e4ddcbf5abf35 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapicommonupdateserviceinterfacepoint_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_updateserviceinterfacepoint_input import TapiCommonUpdateserviceinterfacepointInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapicommonupdateserviceinterfacepointBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiCommonUpdateserviceinterfacepointInput=None): # noqa: E501 + """OperationsTapicommonupdateserviceinterfacepointBody - a model defined in Swagger + + :param input: The input of this OperationsTapicommonupdateserviceinterfacepointBody. # noqa: E501 + :type input: TapiCommonUpdateserviceinterfacepointInput + """ + self.swagger_types = { + 'input': TapiCommonUpdateserviceinterfacepointInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapicommonupdateserviceinterfacepointBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapicommonupdateserviceinterfacepoint_body of this OperationsTapicommonupdateserviceinterfacepointBody. # noqa: E501 + :rtype: OperationsTapicommonupdateserviceinterfacepointBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiCommonUpdateserviceinterfacepointInput: + """Gets the input of this OperationsTapicommonupdateserviceinterfacepointBody. + + + :return: The input of this OperationsTapicommonupdateserviceinterfacepointBody. + :rtype: TapiCommonUpdateserviceinterfacepointInput + """ + return self._input + + @input.setter + def input(self, input: TapiCommonUpdateserviceinterfacepointInput): + """Sets the input of this OperationsTapicommonupdateserviceinterfacepointBody. + + + :param input: The input of this OperationsTapicommonupdateserviceinterfacepointBody. + :type input: TapiCommonUpdateserviceinterfacepointInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitycreateconnectivityservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitycreateconnectivityservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..f48baa1e698c0d26ff6a61f54ab47756eea29ba9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitycreateconnectivityservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_createconnectivityservice_input import TapiConnectivityCreateconnectivityserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivitycreateconnectivityserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityCreateconnectivityserviceInput=None): # noqa: E501 + """OperationsTapiconnectivitycreateconnectivityserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivitycreateconnectivityserviceBody. # noqa: E501 + :type input: TapiConnectivityCreateconnectivityserviceInput + """ + self.swagger_types = { + 'input': TapiConnectivityCreateconnectivityserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivitycreateconnectivityserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivitycreateconnectivityservice_body of this OperationsTapiconnectivitycreateconnectivityserviceBody. # noqa: E501 + :rtype: OperationsTapiconnectivitycreateconnectivityserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityCreateconnectivityserviceInput: + """Gets the input of this OperationsTapiconnectivitycreateconnectivityserviceBody. + + + :return: The input of this OperationsTapiconnectivitycreateconnectivityserviceBody. + :rtype: TapiConnectivityCreateconnectivityserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityCreateconnectivityserviceInput): + """Sets the input of this OperationsTapiconnectivitycreateconnectivityserviceBody. + + + :param input: The input of this OperationsTapiconnectivitycreateconnectivityserviceBody. + :type input: TapiConnectivityCreateconnectivityserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitydeleteconnectivityservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitydeleteconnectivityservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..43ada2c16556ccbfe6582783ad2c79d25e794af0 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitydeleteconnectivityservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_deleteconnectivityservice_input import TapiConnectivityDeleteconnectivityserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivitydeleteconnectivityserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityDeleteconnectivityserviceInput=None): # noqa: E501 + """OperationsTapiconnectivitydeleteconnectivityserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivitydeleteconnectivityserviceBody. # noqa: E501 + :type input: TapiConnectivityDeleteconnectivityserviceInput + """ + self.swagger_types = { + 'input': TapiConnectivityDeleteconnectivityserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivitydeleteconnectivityserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivitydeleteconnectivityservice_body of this OperationsTapiconnectivitydeleteconnectivityserviceBody. # noqa: E501 + :rtype: OperationsTapiconnectivitydeleteconnectivityserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityDeleteconnectivityserviceInput: + """Gets the input of this OperationsTapiconnectivitydeleteconnectivityserviceBody. + + + :return: The input of this OperationsTapiconnectivitydeleteconnectivityserviceBody. + :rtype: TapiConnectivityDeleteconnectivityserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityDeleteconnectivityserviceInput): + """Sets the input of this OperationsTapiconnectivitydeleteconnectivityserviceBody. + + + :param input: The input of this OperationsTapiconnectivitydeleteconnectivityserviceBody. + :type input: TapiConnectivityDeleteconnectivityserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectiondetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectiondetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..07d1b21df5bfcc276c8390d94abbe9134cdd3a3b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectiondetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectiondetails_input import TapiConnectivityGetconnectiondetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivitygetconnectiondetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityGetconnectiondetailsInput=None): # noqa: E501 + """OperationsTapiconnectivitygetconnectiondetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivitygetconnectiondetailsBody. # noqa: E501 + :type input: TapiConnectivityGetconnectiondetailsInput + """ + self.swagger_types = { + 'input': TapiConnectivityGetconnectiondetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivitygetconnectiondetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivitygetconnectiondetails_body of this OperationsTapiconnectivitygetconnectiondetailsBody. # noqa: E501 + :rtype: OperationsTapiconnectivitygetconnectiondetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityGetconnectiondetailsInput: + """Gets the input of this OperationsTapiconnectivitygetconnectiondetailsBody. + + + :return: The input of this OperationsTapiconnectivitygetconnectiondetailsBody. + :rtype: TapiConnectivityGetconnectiondetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityGetconnectiondetailsInput): + """Sets the input of this OperationsTapiconnectivitygetconnectiondetailsBody. + + + :param input: The input of this OperationsTapiconnectivitygetconnectiondetailsBody. + :type input: TapiConnectivityGetconnectiondetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectionendpointdetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectionendpointdetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..6543435bb6ce69f876c1c43c8d3bf574112bbfdc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectionendpointdetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectionendpointdetails_input import TapiConnectivityGetconnectionendpointdetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivitygetconnectionendpointdetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityGetconnectionendpointdetailsInput=None): # noqa: E501 + """OperationsTapiconnectivitygetconnectionendpointdetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. # noqa: E501 + :type input: TapiConnectivityGetconnectionendpointdetailsInput + """ + self.swagger_types = { + 'input': TapiConnectivityGetconnectionendpointdetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivitygetconnectionendpointdetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivitygetconnectionendpointdetails_body of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. # noqa: E501 + :rtype: OperationsTapiconnectivitygetconnectionendpointdetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityGetconnectionendpointdetailsInput: + """Gets the input of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. + + + :return: The input of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. + :rtype: TapiConnectivityGetconnectionendpointdetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityGetconnectionendpointdetailsInput): + """Sets the input of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. + + + :param input: The input of this OperationsTapiconnectivitygetconnectionendpointdetailsBody. + :type input: TapiConnectivityGetconnectionendpointdetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectivityservicedetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectivityservicedetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..ee223091c715cf1905b62a9d3dba8ed778138088 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivitygetconnectivityservicedetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectivityservicedetails_input import TapiConnectivityGetconnectivityservicedetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivitygetconnectivityservicedetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityGetconnectivityservicedetailsInput=None): # noqa: E501 + """OperationsTapiconnectivitygetconnectivityservicedetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. # noqa: E501 + :type input: TapiConnectivityGetconnectivityservicedetailsInput + """ + self.swagger_types = { + 'input': TapiConnectivityGetconnectivityservicedetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivitygetconnectivityservicedetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivitygetconnectivityservicedetails_body of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. # noqa: E501 + :rtype: OperationsTapiconnectivitygetconnectivityservicedetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityGetconnectivityservicedetailsInput: + """Gets the input of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. + + + :return: The input of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. + :rtype: TapiConnectivityGetconnectivityservicedetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityGetconnectivityservicedetailsInput): + """Sets the input of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. + + + :param input: The input of this OperationsTapiconnectivitygetconnectivityservicedetailsBody. + :type input: TapiConnectivityGetconnectivityservicedetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivityupdateconnectivityservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivityupdateconnectivityservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..fb22c93f630536f7f22d9f586cf09adb23432e8e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapiconnectivityupdateconnectivityservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_updateconnectivityservice_input import TapiConnectivityUpdateconnectivityserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapiconnectivityupdateconnectivityserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiConnectivityUpdateconnectivityserviceInput=None): # noqa: E501 + """OperationsTapiconnectivityupdateconnectivityserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapiconnectivityupdateconnectivityserviceBody. # noqa: E501 + :type input: TapiConnectivityUpdateconnectivityserviceInput + """ + self.swagger_types = { + 'input': TapiConnectivityUpdateconnectivityserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapiconnectivityupdateconnectivityserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapiconnectivityupdateconnectivityservice_body of this OperationsTapiconnectivityupdateconnectivityserviceBody. # noqa: E501 + :rtype: OperationsTapiconnectivityupdateconnectivityserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiConnectivityUpdateconnectivityserviceInput: + """Gets the input of this OperationsTapiconnectivityupdateconnectivityserviceBody. + + + :return: The input of this OperationsTapiconnectivityupdateconnectivityserviceBody. + :rtype: TapiConnectivityUpdateconnectivityserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiConnectivityUpdateconnectivityserviceInput): + """Sets the input of this OperationsTapiconnectivityupdateconnectivityserviceBody. + + + :param input: The input of this OperationsTapiconnectivityupdateconnectivityserviceBody. + :type input: TapiConnectivityUpdateconnectivityserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapinotificationcreatenotificationsubscriptionservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationcreatenotificationsubscriptionservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..43a6f7b5a6d58a9f33c6b47b24c5cbcbc20bebda --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationcreatenotificationsubscriptionservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_createnotificationsubscriptionservice_input import TapiNotificationCreatenotificationsubscriptionserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapinotificationcreatenotificationsubscriptionserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiNotificationCreatenotificationsubscriptionserviceInput=None): # noqa: E501 + """OperationsTapinotificationcreatenotificationsubscriptionserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. # noqa: E501 + :type input: TapiNotificationCreatenotificationsubscriptionserviceInput + """ + self.swagger_types = { + 'input': TapiNotificationCreatenotificationsubscriptionserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapinotificationcreatenotificationsubscriptionserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapinotificationcreatenotificationsubscriptionservice_body of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. # noqa: E501 + :rtype: OperationsTapinotificationcreatenotificationsubscriptionserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiNotificationCreatenotificationsubscriptionserviceInput: + """Gets the input of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. + + + :return: The input of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. + :rtype: TapiNotificationCreatenotificationsubscriptionserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiNotificationCreatenotificationsubscriptionserviceInput): + """Sets the input of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. + + + :param input: The input of this OperationsTapinotificationcreatenotificationsubscriptionserviceBody. + :type input: TapiNotificationCreatenotificationsubscriptionserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapinotificationdeletenotificationsubscriptionservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationdeletenotificationsubscriptionservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..ec9af03045ce0dbd64334a3bfba074fa7c7a2faa --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationdeletenotificationsubscriptionservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_deletenotificationsubscriptionservice_input import TapiNotificationDeletenotificationsubscriptionserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapinotificationdeletenotificationsubscriptionserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiNotificationDeletenotificationsubscriptionserviceInput=None): # noqa: E501 + """OperationsTapinotificationdeletenotificationsubscriptionserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. # noqa: E501 + :type input: TapiNotificationDeletenotificationsubscriptionserviceInput + """ + self.swagger_types = { + 'input': TapiNotificationDeletenotificationsubscriptionserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapinotificationdeletenotificationsubscriptionserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapinotificationdeletenotificationsubscriptionservice_body of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. # noqa: E501 + :rtype: OperationsTapinotificationdeletenotificationsubscriptionserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiNotificationDeletenotificationsubscriptionserviceInput: + """Gets the input of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. + + + :return: The input of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. + :rtype: TapiNotificationDeletenotificationsubscriptionserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiNotificationDeletenotificationsubscriptionserviceInput): + """Sets the input of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. + + + :param input: The input of this OperationsTapinotificationdeletenotificationsubscriptionserviceBody. + :type input: TapiNotificationDeletenotificationsubscriptionserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationlist_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationlist_body.py new file mode 100644 index 0000000000000000000000000000000000000000..257a824eebcdbb57d74af2b04244986f7997282a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationlist_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getnotificationlist_input import TapiNotificationGetnotificationlistInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapinotificationgetnotificationlistBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiNotificationGetnotificationlistInput=None): # noqa: E501 + """OperationsTapinotificationgetnotificationlistBody - a model defined in Swagger + + :param input: The input of this OperationsTapinotificationgetnotificationlistBody. # noqa: E501 + :type input: TapiNotificationGetnotificationlistInput + """ + self.swagger_types = { + 'input': TapiNotificationGetnotificationlistInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapinotificationgetnotificationlistBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapinotificationgetnotificationlist_body of this OperationsTapinotificationgetnotificationlistBody. # noqa: E501 + :rtype: OperationsTapinotificationgetnotificationlistBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiNotificationGetnotificationlistInput: + """Gets the input of this OperationsTapinotificationgetnotificationlistBody. + + + :return: The input of this OperationsTapinotificationgetnotificationlistBody. + :rtype: TapiNotificationGetnotificationlistInput + """ + return self._input + + @input.setter + def input(self, input: TapiNotificationGetnotificationlistInput): + """Sets the input of this OperationsTapinotificationgetnotificationlistBody. + + + :param input: The input of this OperationsTapinotificationgetnotificationlistBody. + :type input: TapiNotificationGetnotificationlistInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationsubscriptionservicedetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationsubscriptionservicedetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..6fefb3a1038b67ae936cee91360afd425c99969b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationgetnotificationsubscriptionservicedetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicedetails_input import TapiNotificationGetnotificationsubscriptionservicedetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiNotificationGetnotificationsubscriptionservicedetailsInput=None): # noqa: E501 + """OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. # noqa: E501 + :type input: TapiNotificationGetnotificationsubscriptionservicedetailsInput + """ + self.swagger_types = { + 'input': TapiNotificationGetnotificationsubscriptionservicedetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapinotificationgetnotificationsubscriptionservicedetails_body of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. # noqa: E501 + :rtype: OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiNotificationGetnotificationsubscriptionservicedetailsInput: + """Gets the input of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. + + + :return: The input of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. + :rtype: TapiNotificationGetnotificationsubscriptionservicedetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiNotificationGetnotificationsubscriptionservicedetailsInput): + """Sets the input of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. + + + :param input: The input of this OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody. + :type input: TapiNotificationGetnotificationsubscriptionservicedetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapinotificationupdatenotificationsubscriptionservice_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationupdatenotificationsubscriptionservice_body.py new file mode 100644 index 0000000000000000000000000000000000000000..68baf4d2b0f86444cd8dd651c38e5460d9dd095e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapinotificationupdatenotificationsubscriptionservice_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_updatenotificationsubscriptionservice_input import TapiNotificationUpdatenotificationsubscriptionserviceInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapinotificationupdatenotificationsubscriptionserviceBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiNotificationUpdatenotificationsubscriptionserviceInput=None): # noqa: E501 + """OperationsTapinotificationupdatenotificationsubscriptionserviceBody - a model defined in Swagger + + :param input: The input of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. # noqa: E501 + :type input: TapiNotificationUpdatenotificationsubscriptionserviceInput + """ + self.swagger_types = { + 'input': TapiNotificationUpdatenotificationsubscriptionserviceInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapinotificationupdatenotificationsubscriptionserviceBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapinotificationupdatenotificationsubscriptionservice_body of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. # noqa: E501 + :rtype: OperationsTapinotificationupdatenotificationsubscriptionserviceBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiNotificationUpdatenotificationsubscriptionserviceInput: + """Gets the input of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. + + + :return: The input of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. + :rtype: TapiNotificationUpdatenotificationsubscriptionserviceInput + """ + return self._input + + @input.setter + def input(self, input: TapiNotificationUpdatenotificationsubscriptionserviceInput): + """Sets the input of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. + + + :param input: The input of this OperationsTapinotificationupdatenotificationsubscriptionserviceBody. + :type input: TapiNotificationUpdatenotificationsubscriptionserviceInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationcomputep2ppath_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationcomputep2ppath_body.py new file mode 100644 index 0000000000000000000000000000000000000000..c18dcc4a67b22ca066d39099a5fab21f7881ea47 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationcomputep2ppath_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_computep2ppath_input import TapiPathComputationComputep2ppathInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapipathcomputationcomputep2ppathBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiPathComputationComputep2ppathInput=None): # noqa: E501 + """OperationsTapipathcomputationcomputep2ppathBody - a model defined in Swagger + + :param input: The input of this OperationsTapipathcomputationcomputep2ppathBody. # noqa: E501 + :type input: TapiPathComputationComputep2ppathInput + """ + self.swagger_types = { + 'input': TapiPathComputationComputep2ppathInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapipathcomputationcomputep2ppathBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapipathcomputationcomputep2ppath_body of this OperationsTapipathcomputationcomputep2ppathBody. # noqa: E501 + :rtype: OperationsTapipathcomputationcomputep2ppathBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiPathComputationComputep2ppathInput: + """Gets the input of this OperationsTapipathcomputationcomputep2ppathBody. + + + :return: The input of this OperationsTapipathcomputationcomputep2ppathBody. + :rtype: TapiPathComputationComputep2ppathInput + """ + return self._input + + @input.setter + def input(self, input: TapiPathComputationComputep2ppathInput): + """Sets the input of this OperationsTapipathcomputationcomputep2ppathBody. + + + :param input: The input of this OperationsTapipathcomputationcomputep2ppathBody. + :type input: TapiPathComputationComputep2ppathInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationdeletep2ppath_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationdeletep2ppath_body.py new file mode 100644 index 0000000000000000000000000000000000000000..a7ac8ce61783786629120bec45ceacfb26b03eb0 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationdeletep2ppath_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_deletep2ppath_input import TapiPathComputationDeletep2ppathInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapipathcomputationdeletep2ppathBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiPathComputationDeletep2ppathInput=None): # noqa: E501 + """OperationsTapipathcomputationdeletep2ppathBody - a model defined in Swagger + + :param input: The input of this OperationsTapipathcomputationdeletep2ppathBody. # noqa: E501 + :type input: TapiPathComputationDeletep2ppathInput + """ + self.swagger_types = { + 'input': TapiPathComputationDeletep2ppathInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapipathcomputationdeletep2ppathBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapipathcomputationdeletep2ppath_body of this OperationsTapipathcomputationdeletep2ppathBody. # noqa: E501 + :rtype: OperationsTapipathcomputationdeletep2ppathBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiPathComputationDeletep2ppathInput: + """Gets the input of this OperationsTapipathcomputationdeletep2ppathBody. + + + :return: The input of this OperationsTapipathcomputationdeletep2ppathBody. + :rtype: TapiPathComputationDeletep2ppathInput + """ + return self._input + + @input.setter + def input(self, input: TapiPathComputationDeletep2ppathInput): + """Sets the input of this OperationsTapipathcomputationdeletep2ppathBody. + + + :param input: The input of this OperationsTapipathcomputationdeletep2ppathBody. + :type input: TapiPathComputationDeletep2ppathInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationoptimizep2ppath_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationoptimizep2ppath_body.py new file mode 100644 index 0000000000000000000000000000000000000000..33e7f86648abc07991b13f04567b6d7c4e717ced --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapipathcomputationoptimizep2ppath_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_optimizep2ppath_input import TapiPathComputationOptimizep2ppathInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapipathcomputationoptimizep2ppathBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiPathComputationOptimizep2ppathInput=None): # noqa: E501 + """OperationsTapipathcomputationoptimizep2ppathBody - a model defined in Swagger + + :param input: The input of this OperationsTapipathcomputationoptimizep2ppathBody. # noqa: E501 + :type input: TapiPathComputationOptimizep2ppathInput + """ + self.swagger_types = { + 'input': TapiPathComputationOptimizep2ppathInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapipathcomputationoptimizep2ppathBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapipathcomputationoptimizep2ppath_body of this OperationsTapipathcomputationoptimizep2ppathBody. # noqa: E501 + :rtype: OperationsTapipathcomputationoptimizep2ppathBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiPathComputationOptimizep2ppathInput: + """Gets the input of this OperationsTapipathcomputationoptimizep2ppathBody. + + + :return: The input of this OperationsTapipathcomputationoptimizep2ppathBody. + :rtype: TapiPathComputationOptimizep2ppathInput + """ + return self._input + + @input.setter + def input(self, input: TapiPathComputationOptimizep2ppathInput): + """Sets the input of this OperationsTapipathcomputationoptimizep2ppathBody. + + + :param input: The input of this OperationsTapipathcomputationoptimizep2ppathBody. + :type input: TapiPathComputationOptimizep2ppathInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetlinkdetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetlinkdetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..389a4d7f51dce713d94ee4273026cf7da5b8a900 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetlinkdetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getlinkdetails_input import TapiTopologyGetlinkdetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapitopologygetlinkdetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiTopologyGetlinkdetailsInput=None): # noqa: E501 + """OperationsTapitopologygetlinkdetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapitopologygetlinkdetailsBody. # noqa: E501 + :type input: TapiTopologyGetlinkdetailsInput + """ + self.swagger_types = { + 'input': TapiTopologyGetlinkdetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapitopologygetlinkdetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapitopologygetlinkdetails_body of this OperationsTapitopologygetlinkdetailsBody. # noqa: E501 + :rtype: OperationsTapitopologygetlinkdetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiTopologyGetlinkdetailsInput: + """Gets the input of this OperationsTapitopologygetlinkdetailsBody. + + + :return: The input of this OperationsTapitopologygetlinkdetailsBody. + :rtype: TapiTopologyGetlinkdetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiTopologyGetlinkdetailsInput): + """Sets the input of this OperationsTapitopologygetlinkdetailsBody. + + + :param input: The input of this OperationsTapitopologygetlinkdetailsBody. + :type input: TapiTopologyGetlinkdetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodedetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodedetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..cd83d5b34aed1bb7564bfcaffb98c7351fbcaeab --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodedetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getnodedetails_input import TapiTopologyGetnodedetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapitopologygetnodedetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiTopologyGetnodedetailsInput=None): # noqa: E501 + """OperationsTapitopologygetnodedetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapitopologygetnodedetailsBody. # noqa: E501 + :type input: TapiTopologyGetnodedetailsInput + """ + self.swagger_types = { + 'input': TapiTopologyGetnodedetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapitopologygetnodedetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapitopologygetnodedetails_body of this OperationsTapitopologygetnodedetailsBody. # noqa: E501 + :rtype: OperationsTapitopologygetnodedetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiTopologyGetnodedetailsInput: + """Gets the input of this OperationsTapitopologygetnodedetailsBody. + + + :return: The input of this OperationsTapitopologygetnodedetailsBody. + :rtype: TapiTopologyGetnodedetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiTopologyGetnodedetailsInput): + """Sets the input of this OperationsTapitopologygetnodedetailsBody. + + + :param input: The input of this OperationsTapitopologygetnodedetailsBody. + :type input: TapiTopologyGetnodedetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodeedgepointdetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodeedgepointdetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..dd43956fae60bed31beed4b0a49ccba555a0a732 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygetnodeedgepointdetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getnodeedgepointdetails_input import TapiTopologyGetnodeedgepointdetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapitopologygetnodeedgepointdetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiTopologyGetnodeedgepointdetailsInput=None): # noqa: E501 + """OperationsTapitopologygetnodeedgepointdetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapitopologygetnodeedgepointdetailsBody. # noqa: E501 + :type input: TapiTopologyGetnodeedgepointdetailsInput + """ + self.swagger_types = { + 'input': TapiTopologyGetnodeedgepointdetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapitopologygetnodeedgepointdetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapitopologygetnodeedgepointdetails_body of this OperationsTapitopologygetnodeedgepointdetailsBody. # noqa: E501 + :rtype: OperationsTapitopologygetnodeedgepointdetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiTopologyGetnodeedgepointdetailsInput: + """Gets the input of this OperationsTapitopologygetnodeedgepointdetailsBody. + + + :return: The input of this OperationsTapitopologygetnodeedgepointdetailsBody. + :rtype: TapiTopologyGetnodeedgepointdetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiTopologyGetnodeedgepointdetailsInput): + """Sets the input of this OperationsTapitopologygetnodeedgepointdetailsBody. + + + :param input: The input of this OperationsTapitopologygetnodeedgepointdetailsBody. + :type input: TapiTopologyGetnodeedgepointdetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/operations_tapitopologygettopologydetails_body.py b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygettopologydetails_body.py new file mode 100644 index 0000000000000000000000000000000000000000..f5a0f2d932ddb6b3f082b5a61269bfd3d2fc8508 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/operations_tapitopologygettopologydetails_body.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_gettopologydetails_input import TapiTopologyGettopologydetailsInput # noqa: F401,E501 +from tapi_server import util + + +class OperationsTapitopologygettopologydetailsBody(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, input: TapiTopologyGettopologydetailsInput=None): # noqa: E501 + """OperationsTapitopologygettopologydetailsBody - a model defined in Swagger + + :param input: The input of this OperationsTapitopologygettopologydetailsBody. # noqa: E501 + :type input: TapiTopologyGettopologydetailsInput + """ + self.swagger_types = { + 'input': TapiTopologyGettopologydetailsInput + } + + self.attribute_map = { + 'input': 'input' + } + self._input = input + + @classmethod + def from_dict(cls, dikt) -> 'OperationsTapitopologygettopologydetailsBody': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The operations_tapitopologygettopologydetails_body of this OperationsTapitopologygettopologydetailsBody. # noqa: E501 + :rtype: OperationsTapitopologygettopologydetailsBody + """ + return util.deserialize_model(dikt, cls) + + @property + def input(self) -> TapiTopologyGettopologydetailsInput: + """Gets the input of this OperationsTapitopologygettopologydetailsBody. + + + :return: The input of this OperationsTapitopologygettopologydetailsBody. + :rtype: TapiTopologyGettopologydetailsInput + """ + return self._input + + @input.setter + def input(self, input: TapiTopologyGettopologydetailsInput): + """Sets the input of this OperationsTapitopologygettopologydetailsBody. + + + :param input: The input of this OperationsTapitopologygettopologydetailsBody. + :type input: TapiTopologyGettopologydetailsInput + """ + + self._input = input diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_admin_state_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_common_admin_state_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..1db830d31415b70a9a19bb0a3ba740153e886594 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_admin_state_pac.py @@ -0,0 +1,117 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonAdminStatePac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None): # noqa: E501 + """TapiCommonAdminStatePac - a model defined in Swagger + + :param operational_state: The operational_state of this TapiCommonAdminStatePac. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiCommonAdminStatePac. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiCommonAdminStatePac. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + """ + self.swagger_types = { + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState + } + + self.attribute_map = { + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state' + } + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonAdminStatePac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.AdminStatePac of this TapiCommonAdminStatePac. # noqa: E501 + :rtype: TapiCommonAdminStatePac + """ + return util.deserialize_model(dikt, cls) + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiCommonAdminStatePac. + + + :return: The operational_state of this TapiCommonAdminStatePac. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiCommonAdminStatePac. + + + :param operational_state: The operational_state of this TapiCommonAdminStatePac. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiCommonAdminStatePac. + + + :return: The lifecycle_state of this TapiCommonAdminStatePac. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiCommonAdminStatePac. + + + :param lifecycle_state: The lifecycle_state of this TapiCommonAdminStatePac. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiCommonAdminStatePac. + + + :return: The administrative_state of this TapiCommonAdminStatePac. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiCommonAdminStatePac. + + + :param administrative_state: The administrative_state of this TapiCommonAdminStatePac. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_administrative_state.py b/hackfest/tapi/server/tapi_server/models/tapi_common_administrative_state.py new file mode 100644 index 0000000000000000000000000000000000000000..f49d7d8e1d886866b0d336f58f2ea96d534d68ed --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_administrative_state.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonAdministrativeState(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + LOCKED = "LOCKED" + UNLOCKED = "UNLOCKED" + def __init__(self): # noqa: E501 + """TapiCommonAdministrativeState - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonAdministrativeState': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.AdministrativeState of this TapiCommonAdministrativeState. # noqa: E501 + :rtype: TapiCommonAdministrativeState + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile.py b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile.py new file mode 100644 index 0000000000000000000000000000000000000000..7be05a67dc09ec117179de6a66cc3cbec315c20b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile.py @@ -0,0 +1,224 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_bandwidth_profile_type import TapiCommonBandwidthProfileType # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_value import TapiCommonCapacityValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonBandwidthProfile(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, committed_information_rate: TapiCommonCapacityValue=None, coupling_flag: bool=False, bw_profile_type: TapiCommonBandwidthProfileType=None, peak_information_rate: TapiCommonCapacityValue=None, committed_burst_size: TapiCommonCapacityValue=None, peak_burst_size: TapiCommonCapacityValue=None, color_aware: bool=False): # noqa: E501 + """TapiCommonBandwidthProfile - a model defined in Swagger + + :param committed_information_rate: The committed_information_rate of this TapiCommonBandwidthProfile. # noqa: E501 + :type committed_information_rate: TapiCommonCapacityValue + :param coupling_flag: The coupling_flag of this TapiCommonBandwidthProfile. # noqa: E501 + :type coupling_flag: bool + :param bw_profile_type: The bw_profile_type of this TapiCommonBandwidthProfile. # noqa: E501 + :type bw_profile_type: TapiCommonBandwidthProfileType + :param peak_information_rate: The peak_information_rate of this TapiCommonBandwidthProfile. # noqa: E501 + :type peak_information_rate: TapiCommonCapacityValue + :param committed_burst_size: The committed_burst_size of this TapiCommonBandwidthProfile. # noqa: E501 + :type committed_burst_size: TapiCommonCapacityValue + :param peak_burst_size: The peak_burst_size of this TapiCommonBandwidthProfile. # noqa: E501 + :type peak_burst_size: TapiCommonCapacityValue + :param color_aware: The color_aware of this TapiCommonBandwidthProfile. # noqa: E501 + :type color_aware: bool + """ + self.swagger_types = { + 'committed_information_rate': TapiCommonCapacityValue, + 'coupling_flag': bool, + 'bw_profile_type': TapiCommonBandwidthProfileType, + 'peak_information_rate': TapiCommonCapacityValue, + 'committed_burst_size': TapiCommonCapacityValue, + 'peak_burst_size': TapiCommonCapacityValue, + 'color_aware': bool + } + + self.attribute_map = { + 'committed_information_rate': 'committed-information-rate', + 'coupling_flag': 'coupling-flag', + 'bw_profile_type': 'bw-profile-type', + 'peak_information_rate': 'peak-information-rate', + 'committed_burst_size': 'committed-burst-size', + 'peak_burst_size': 'peak-burst-size', + 'color_aware': 'color-aware' + } + self._committed_information_rate = committed_information_rate + self._coupling_flag = coupling_flag + self._bw_profile_type = bw_profile_type + self._peak_information_rate = peak_information_rate + self._committed_burst_size = committed_burst_size + self._peak_burst_size = peak_burst_size + self._color_aware = color_aware + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonBandwidthProfile': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.BandwidthProfile of this TapiCommonBandwidthProfile. # noqa: E501 + :rtype: TapiCommonBandwidthProfile + """ + return util.deserialize_model(dikt, cls) + + @property + def committed_information_rate(self) -> TapiCommonCapacityValue: + """Gets the committed_information_rate of this TapiCommonBandwidthProfile. + + + :return: The committed_information_rate of this TapiCommonBandwidthProfile. + :rtype: TapiCommonCapacityValue + """ + return self._committed_information_rate + + @committed_information_rate.setter + def committed_information_rate(self, committed_information_rate: TapiCommonCapacityValue): + """Sets the committed_information_rate of this TapiCommonBandwidthProfile. + + + :param committed_information_rate: The committed_information_rate of this TapiCommonBandwidthProfile. + :type committed_information_rate: TapiCommonCapacityValue + """ + + self._committed_information_rate = committed_information_rate + + @property + def coupling_flag(self) -> bool: + """Gets the coupling_flag of this TapiCommonBandwidthProfile. + + none # noqa: E501 + + :return: The coupling_flag of this TapiCommonBandwidthProfile. + :rtype: bool + """ + return self._coupling_flag + + @coupling_flag.setter + def coupling_flag(self, coupling_flag: bool): + """Sets the coupling_flag of this TapiCommonBandwidthProfile. + + none # noqa: E501 + + :param coupling_flag: The coupling_flag of this TapiCommonBandwidthProfile. + :type coupling_flag: bool + """ + + self._coupling_flag = coupling_flag + + @property + def bw_profile_type(self) -> TapiCommonBandwidthProfileType: + """Gets the bw_profile_type of this TapiCommonBandwidthProfile. + + + :return: The bw_profile_type of this TapiCommonBandwidthProfile. + :rtype: TapiCommonBandwidthProfileType + """ + return self._bw_profile_type + + @bw_profile_type.setter + def bw_profile_type(self, bw_profile_type: TapiCommonBandwidthProfileType): + """Sets the bw_profile_type of this TapiCommonBandwidthProfile. + + + :param bw_profile_type: The bw_profile_type of this TapiCommonBandwidthProfile. + :type bw_profile_type: TapiCommonBandwidthProfileType + """ + + self._bw_profile_type = bw_profile_type + + @property + def peak_information_rate(self) -> TapiCommonCapacityValue: + """Gets the peak_information_rate of this TapiCommonBandwidthProfile. + + + :return: The peak_information_rate of this TapiCommonBandwidthProfile. + :rtype: TapiCommonCapacityValue + """ + return self._peak_information_rate + + @peak_information_rate.setter + def peak_information_rate(self, peak_information_rate: TapiCommonCapacityValue): + """Sets the peak_information_rate of this TapiCommonBandwidthProfile. + + + :param peak_information_rate: The peak_information_rate of this TapiCommonBandwidthProfile. + :type peak_information_rate: TapiCommonCapacityValue + """ + + self._peak_information_rate = peak_information_rate + + @property + def committed_burst_size(self) -> TapiCommonCapacityValue: + """Gets the committed_burst_size of this TapiCommonBandwidthProfile. + + + :return: The committed_burst_size of this TapiCommonBandwidthProfile. + :rtype: TapiCommonCapacityValue + """ + return self._committed_burst_size + + @committed_burst_size.setter + def committed_burst_size(self, committed_burst_size: TapiCommonCapacityValue): + """Sets the committed_burst_size of this TapiCommonBandwidthProfile. + + + :param committed_burst_size: The committed_burst_size of this TapiCommonBandwidthProfile. + :type committed_burst_size: TapiCommonCapacityValue + """ + + self._committed_burst_size = committed_burst_size + + @property + def peak_burst_size(self) -> TapiCommonCapacityValue: + """Gets the peak_burst_size of this TapiCommonBandwidthProfile. + + + :return: The peak_burst_size of this TapiCommonBandwidthProfile. + :rtype: TapiCommonCapacityValue + """ + return self._peak_burst_size + + @peak_burst_size.setter + def peak_burst_size(self, peak_burst_size: TapiCommonCapacityValue): + """Sets the peak_burst_size of this TapiCommonBandwidthProfile. + + + :param peak_burst_size: The peak_burst_size of this TapiCommonBandwidthProfile. + :type peak_burst_size: TapiCommonCapacityValue + """ + + self._peak_burst_size = peak_burst_size + + @property + def color_aware(self) -> bool: + """Gets the color_aware of this TapiCommonBandwidthProfile. + + none # noqa: E501 + + :return: The color_aware of this TapiCommonBandwidthProfile. + :rtype: bool + """ + return self._color_aware + + @color_aware.setter + def color_aware(self, color_aware: bool): + """Sets the color_aware of this TapiCommonBandwidthProfile. + + none # noqa: E501 + + :param color_aware: The color_aware of this TapiCommonBandwidthProfile. + :type color_aware: bool + """ + + self._color_aware = color_aware diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_type.py b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_type.py new file mode 100644 index 0000000000000000000000000000000000000000..fb1de346e30a4217e99f442b8c56c35b752e406d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_type.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonBandwidthProfileType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + MEF_10_X = "MEF_10.x" + RFC_2697 = "RFC_2697" + RFC_2698 = "RFC_2698" + RFC_4115 = "RFC_4115" + def __init__(self): # noqa: E501 + """TapiCommonBandwidthProfileType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonBandwidthProfileType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.BandwidthProfileType of this TapiCommonBandwidthProfileType. # noqa: E501 + :rtype: TapiCommonBandwidthProfileType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..7404280b0aaaa97f8276a41d4015c54e54f3dde8 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_bandwidth_profile_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_bandwidth_profile import TapiCommonBandwidthProfile # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonBandwidthProfileWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, bandwidth_profile: TapiCommonBandwidthProfile=None): # noqa: E501 + """TapiCommonBandwidthProfileWrapper - a model defined in Swagger + + :param bandwidth_profile: The bandwidth_profile of this TapiCommonBandwidthProfileWrapper. # noqa: E501 + :type bandwidth_profile: TapiCommonBandwidthProfile + """ + self.swagger_types = { + 'bandwidth_profile': TapiCommonBandwidthProfile + } + + self.attribute_map = { + 'bandwidth_profile': 'bandwidth-profile' + } + self._bandwidth_profile = bandwidth_profile + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonBandwidthProfileWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.BandwidthProfileWrapper of this TapiCommonBandwidthProfileWrapper. # noqa: E501 + :rtype: TapiCommonBandwidthProfileWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def bandwidth_profile(self) -> TapiCommonBandwidthProfile: + """Gets the bandwidth_profile of this TapiCommonBandwidthProfileWrapper. + + + :return: The bandwidth_profile of this TapiCommonBandwidthProfileWrapper. + :rtype: TapiCommonBandwidthProfile + """ + return self._bandwidth_profile + + @bandwidth_profile.setter + def bandwidth_profile(self, bandwidth_profile: TapiCommonBandwidthProfile): + """Sets the bandwidth_profile of this TapiCommonBandwidthProfileWrapper. + + + :param bandwidth_profile: The bandwidth_profile of this TapiCommonBandwidthProfileWrapper. + :type bandwidth_profile: TapiCommonBandwidthProfile + """ + + self._bandwidth_profile = bandwidth_profile diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity.py new file mode 100644 index 0000000000000000000000000000000000000000..9738d256fda1a0c4b69fbae71dd6e541f9d27df7 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_bandwidth_profile import TapiCommonBandwidthProfile # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_value import TapiCommonCapacityValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonCapacity(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, bandwidth_profile: TapiCommonBandwidthProfile=None, total_size: TapiCommonCapacityValue=None): # noqa: E501 + """TapiCommonCapacity - a model defined in Swagger + + :param bandwidth_profile: The bandwidth_profile of this TapiCommonCapacity. # noqa: E501 + :type bandwidth_profile: TapiCommonBandwidthProfile + :param total_size: The total_size of this TapiCommonCapacity. # noqa: E501 + :type total_size: TapiCommonCapacityValue + """ + self.swagger_types = { + 'bandwidth_profile': TapiCommonBandwidthProfile, + 'total_size': TapiCommonCapacityValue + } + + self.attribute_map = { + 'bandwidth_profile': 'bandwidth-profile', + 'total_size': 'total-size' + } + self._bandwidth_profile = bandwidth_profile + self._total_size = total_size + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacity': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.Capacity of this TapiCommonCapacity. # noqa: E501 + :rtype: TapiCommonCapacity + """ + return util.deserialize_model(dikt, cls) + + @property + def bandwidth_profile(self) -> TapiCommonBandwidthProfile: + """Gets the bandwidth_profile of this TapiCommonCapacity. + + + :return: The bandwidth_profile of this TapiCommonCapacity. + :rtype: TapiCommonBandwidthProfile + """ + return self._bandwidth_profile + + @bandwidth_profile.setter + def bandwidth_profile(self, bandwidth_profile: TapiCommonBandwidthProfile): + """Sets the bandwidth_profile of this TapiCommonCapacity. + + + :param bandwidth_profile: The bandwidth_profile of this TapiCommonCapacity. + :type bandwidth_profile: TapiCommonBandwidthProfile + """ + + self._bandwidth_profile = bandwidth_profile + + @property + def total_size(self) -> TapiCommonCapacityValue: + """Gets the total_size of this TapiCommonCapacity. + + + :return: The total_size of this TapiCommonCapacity. + :rtype: TapiCommonCapacityValue + """ + return self._total_size + + @total_size.setter + def total_size(self, total_size: TapiCommonCapacityValue): + """Sets the total_size of this TapiCommonCapacity. + + + :param total_size: The total_size of this TapiCommonCapacity. + :type total_size: TapiCommonCapacityValue + """ + + self._total_size = total_size diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..148735e381b2904cb7b2c462e879359db9b98695 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_pac.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonCapacityPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None): # noqa: E501 + """TapiCommonCapacityPac - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiCommonCapacityPac. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiCommonCapacityPac. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacityPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.CapacityPac of this TapiCommonCapacityPac. # noqa: E501 + :rtype: TapiCommonCapacityPac + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiCommonCapacityPac. + + + :return: The available_capacity of this TapiCommonCapacityPac. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiCommonCapacityPac. + + + :param available_capacity: The available_capacity of this TapiCommonCapacityPac. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiCommonCapacityPac. + + + :return: The total_potential_capacity of this TapiCommonCapacityPac. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiCommonCapacityPac. + + + :param total_potential_capacity: The total_potential_capacity of this TapiCommonCapacityPac. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_unit.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_unit.py new file mode 100644 index 0000000000000000000000000000000000000000..9a2a33f1b961839473928153c108b384465eaf0a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_unit.py @@ -0,0 +1,50 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonCapacityUnit(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + TB = "TB" + TBPS = "TBPS" + GB = "GB" + GBPS = "GBPS" + MB = "MB" + MBPS = "MBPS" + KB = "KB" + KBPS = "KBPS" + GHZ = "GHz" + MHZ = "MHz" + def __init__(self): # noqa: E501 + """TapiCommonCapacityUnit - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacityUnit': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.CapacityUnit of this TapiCommonCapacityUnit. # noqa: E501 + :rtype: TapiCommonCapacityUnit + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value.py new file mode 100644 index 0000000000000000000000000000000000000000..adc65eff8d91b4af6947842612de6c418ee07098 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity_unit import TapiCommonCapacityUnit # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonCapacityValue(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, value: int=None, unit: TapiCommonCapacityUnit=None): # noqa: E501 + """TapiCommonCapacityValue - a model defined in Swagger + + :param value: The value of this TapiCommonCapacityValue. # noqa: E501 + :type value: int + :param unit: The unit of this TapiCommonCapacityValue. # noqa: E501 + :type unit: TapiCommonCapacityUnit + """ + self.swagger_types = { + 'value': int, + 'unit': TapiCommonCapacityUnit + } + + self.attribute_map = { + 'value': 'value', + 'unit': 'unit' + } + self._value = value + self._unit = unit + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacityValue': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.CapacityValue of this TapiCommonCapacityValue. # noqa: E501 + :rtype: TapiCommonCapacityValue + """ + return util.deserialize_model(dikt, cls) + + @property + def value(self) -> int: + """Gets the value of this TapiCommonCapacityValue. + + none # noqa: E501 + + :return: The value of this TapiCommonCapacityValue. + :rtype: int + """ + return self._value + + @value.setter + def value(self, value: int): + """Sets the value of this TapiCommonCapacityValue. + + none # noqa: E501 + + :param value: The value of this TapiCommonCapacityValue. + :type value: int + """ + + self._value = value + + @property + def unit(self) -> TapiCommonCapacityUnit: + """Gets the unit of this TapiCommonCapacityValue. + + + :return: The unit of this TapiCommonCapacityValue. + :rtype: TapiCommonCapacityUnit + """ + return self._unit + + @unit.setter + def unit(self, unit: TapiCommonCapacityUnit): + """Sets the unit of this TapiCommonCapacityValue. + + + :param unit: The unit of this TapiCommonCapacityValue. + :type unit: TapiCommonCapacityUnit + """ + + self._unit = unit diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..fc7007f031a6c4714a406f5ce058e91ea529bdd1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_value_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity_value import TapiCommonCapacityValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonCapacityValueWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, committed_burst_size: TapiCommonCapacityValue=None): # noqa: E501 + """TapiCommonCapacityValueWrapper - a model defined in Swagger + + :param committed_burst_size: The committed_burst_size of this TapiCommonCapacityValueWrapper. # noqa: E501 + :type committed_burst_size: TapiCommonCapacityValue + """ + self.swagger_types = { + 'committed_burst_size': TapiCommonCapacityValue + } + + self.attribute_map = { + 'committed_burst_size': 'committed-burst-size' + } + self._committed_burst_size = committed_burst_size + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacityValueWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.CapacityValueWrapper of this TapiCommonCapacityValueWrapper. # noqa: E501 + :rtype: TapiCommonCapacityValueWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def committed_burst_size(self) -> TapiCommonCapacityValue: + """Gets the committed_burst_size of this TapiCommonCapacityValueWrapper. + + + :return: The committed_burst_size of this TapiCommonCapacityValueWrapper. + :rtype: TapiCommonCapacityValue + """ + return self._committed_burst_size + + @committed_burst_size.setter + def committed_burst_size(self, committed_burst_size: TapiCommonCapacityValue): + """Sets the committed_burst_size of this TapiCommonCapacityValueWrapper. + + + :param committed_burst_size: The committed_burst_size of this TapiCommonCapacityValueWrapper. + :type committed_burst_size: TapiCommonCapacityValue + """ + + self._committed_burst_size = committed_burst_size diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..dcb62680e3845e494d7e8ca5b0bdd84cdd478554 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_capacity_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonCapacityWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None): # noqa: E501 + """TapiCommonCapacityWrapper - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiCommonCapacityWrapper. # noqa: E501 + :type available_capacity: TapiCommonCapacity + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity + } + + self.attribute_map = { + 'available_capacity': 'available-capacity' + } + self._available_capacity = available_capacity + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonCapacityWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.CapacityWrapper of this TapiCommonCapacityWrapper. # noqa: E501 + :rtype: TapiCommonCapacityWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiCommonCapacityWrapper. + + + :return: The available_capacity of this TapiCommonCapacityWrapper. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiCommonCapacityWrapper. + + + :param available_capacity: The available_capacity of this TapiCommonCapacityWrapper. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_context.py b/hackfest/tapi/server/tapi_server/models/tapi_common_context.py new file mode 100644 index 0000000000000000000000000000000000000000..8d3c849c56762693d7d0691b2a877e549cea695c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_context.py @@ -0,0 +1,178 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint # noqa: F401,E501 +from tapi_server.models.tapi_common_tapi_context import TapiCommonTapiContext # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_context_augmentation3 import TapiConnectivityContextAugmentation3 # noqa: F401,E501 +from tapi_server.models.tapi_notification_context_augmentation1 import TapiNotificationContextAugmentation1 # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_context import TapiNotificationNotificationContext # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_context_augmentation2 import TapiPathComputationContextAugmentation2 # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_computation_context import TapiPathComputationPathComputationContext # noqa: F401,E501 +from tapi_server.models.tapi_topology_context_augmentation4 import TapiTopologyContextAugmentation4 # noqa: F401,E501 +from tapi_server.models.tapi_topology_topology_context import TapiTopologyTopologyContext # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_context: TapiConnectivityConnectivityContext=None, notification_context: TapiNotificationNotificationContext=None, path_computation_context: TapiPathComputationPathComputationContext=None, topology_context: TapiTopologyTopologyContext=None, service_interface_point: List[TapiCommonServiceInterfacePoint]=None): # noqa: E501 + """TapiCommonContext - a model defined in Swagger + + :param connectivity_context: The connectivity_context of this TapiCommonContext. # noqa: E501 + :type connectivity_context: TapiConnectivityConnectivityContext + :param notification_context: The notification_context of this TapiCommonContext. # noqa: E501 + :type notification_context: TapiNotificationNotificationContext + :param path_computation_context: The path_computation_context of this TapiCommonContext. # noqa: E501 + :type path_computation_context: TapiPathComputationPathComputationContext + :param topology_context: The topology_context of this TapiCommonContext. # noqa: E501 + :type topology_context: TapiTopologyTopologyContext + :param service_interface_point: The service_interface_point of this TapiCommonContext. # noqa: E501 + :type service_interface_point: List[TapiCommonServiceInterfacePoint] + """ + self.swagger_types = { + 'connectivity_context': TapiConnectivityConnectivityContext, + 'notification_context': TapiNotificationNotificationContext, + 'path_computation_context': TapiPathComputationPathComputationContext, + 'topology_context': TapiTopologyTopologyContext, + 'service_interface_point': List[TapiCommonServiceInterfacePoint] + } + + self.attribute_map = { + 'connectivity_context': 'connectivity-context', + 'notification_context': 'notification-context', + 'path_computation_context': 'path-computation-context', + 'topology_context': 'topology-context', + 'service_interface_point': 'service-interface-point' + } + self._connectivity_context = connectivity_context + self._notification_context = notification_context + self._path_computation_context = path_computation_context + self._topology_context = topology_context + self._service_interface_point = service_interface_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.Context of this TapiCommonContext. # noqa: E501 + :rtype: TapiCommonContext + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_context(self) -> TapiConnectivityConnectivityContext: + """Gets the connectivity_context of this TapiCommonContext. + + + :return: The connectivity_context of this TapiCommonContext. + :rtype: TapiConnectivityConnectivityContext + """ + return self._connectivity_context + + @connectivity_context.setter + def connectivity_context(self, connectivity_context: TapiConnectivityConnectivityContext): + """Sets the connectivity_context of this TapiCommonContext. + + + :param connectivity_context: The connectivity_context of this TapiCommonContext. + :type connectivity_context: TapiConnectivityConnectivityContext + """ + + self._connectivity_context = connectivity_context + + @property + def notification_context(self) -> TapiNotificationNotificationContext: + """Gets the notification_context of this TapiCommonContext. + + + :return: The notification_context of this TapiCommonContext. + :rtype: TapiNotificationNotificationContext + """ + return self._notification_context + + @notification_context.setter + def notification_context(self, notification_context: TapiNotificationNotificationContext): + """Sets the notification_context of this TapiCommonContext. + + + :param notification_context: The notification_context of this TapiCommonContext. + :type notification_context: TapiNotificationNotificationContext + """ + + self._notification_context = notification_context + + @property + def path_computation_context(self) -> TapiPathComputationPathComputationContext: + """Gets the path_computation_context of this TapiCommonContext. + + + :return: The path_computation_context of this TapiCommonContext. + :rtype: TapiPathComputationPathComputationContext + """ + return self._path_computation_context + + @path_computation_context.setter + def path_computation_context(self, path_computation_context: TapiPathComputationPathComputationContext): + """Sets the path_computation_context of this TapiCommonContext. + + + :param path_computation_context: The path_computation_context of this TapiCommonContext. + :type path_computation_context: TapiPathComputationPathComputationContext + """ + + self._path_computation_context = path_computation_context + + @property + def topology_context(self) -> TapiTopologyTopologyContext: + """Gets the topology_context of this TapiCommonContext. + + + :return: The topology_context of this TapiCommonContext. + :rtype: TapiTopologyTopologyContext + """ + return self._topology_context + + @topology_context.setter + def topology_context(self, topology_context: TapiTopologyTopologyContext): + """Sets the topology_context of this TapiCommonContext. + + + :param topology_context: The topology_context of this TapiCommonContext. + :type topology_context: TapiTopologyTopologyContext + """ + + self._topology_context = topology_context + + @property + def service_interface_point(self) -> List[TapiCommonServiceInterfacePoint]: + """Gets the service_interface_point of this TapiCommonContext. + + none # noqa: E501 + + :return: The service_interface_point of this TapiCommonContext. + :rtype: List[TapiCommonServiceInterfacePoint] + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: List[TapiCommonServiceInterfacePoint]): + """Sets the service_interface_point of this TapiCommonContext. + + none # noqa: E501 + + :param service_interface_point: The service_interface_point of this TapiCommonContext. + :type service_interface_point: List[TapiCommonServiceInterfacePoint] + """ + + self._service_interface_point = service_interface_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_context_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_context_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..d8b98d3e92693c5febe3055cd721441ab2fc6502 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_context_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_context import TapiCommonContext # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonContextWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_commoncontext: TapiCommonContext=None): # noqa: E501 + """TapiCommonContextWrapper - a model defined in Swagger + + :param tapi_commoncontext: The tapi_commoncontext of this TapiCommonContextWrapper. # noqa: E501 + :type tapi_commoncontext: TapiCommonContext + """ + self.swagger_types = { + 'tapi_commoncontext': TapiCommonContext + } + + self.attribute_map = { + 'tapi_commoncontext': 'tapi-common:context' + } + self._tapi_commoncontext = tapi_commoncontext + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonContextWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ContextWrapper of this TapiCommonContextWrapper. # noqa: E501 + :rtype: TapiCommonContextWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_commoncontext(self) -> TapiCommonContext: + """Gets the tapi_commoncontext of this TapiCommonContextWrapper. + + + :return: The tapi_commoncontext of this TapiCommonContextWrapper. + :rtype: TapiCommonContext + """ + return self._tapi_commoncontext + + @tapi_commoncontext.setter + def tapi_commoncontext(self, tapi_commoncontext: TapiCommonContext): + """Sets the tapi_commoncontext of this TapiCommonContextWrapper. + + + :param tapi_commoncontext: The tapi_commoncontext of this TapiCommonContextWrapper. + :type tapi_commoncontext: TapiCommonContext + """ + + self._tapi_commoncontext = tapi_commoncontext diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_directive_value.py b/hackfest/tapi/server/tapi_server/models/tapi_common_directive_value.py new file mode 100644 index 0000000000000000000000000000000000000000..66d4360cb64df3b8c3deb28b6ddb9a15a47df20c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_directive_value.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonDirectiveValue(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + MINIMIZE = "MINIMIZE" + MAXIMIZE = "MAXIMIZE" + ALLOW = "ALLOW" + DISALLOW = "DISALLOW" + DONT_CARE = "DONT_CARE" + def __init__(self): # noqa: E501 + """TapiCommonDirectiveValue - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonDirectiveValue': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.DirectiveValue of this TapiCommonDirectiveValue. # noqa: E501 + :rtype: TapiCommonDirectiveValue + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_forwarding_direction.py b/hackfest/tapi/server/tapi_server/models/tapi_common_forwarding_direction.py new file mode 100644 index 0000000000000000000000000000000000000000..732f5c8cb1f33aa259f0f27807fd67655067a9fa --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_forwarding_direction.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonForwardingDirection(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + BIDIRECTIONAL = "BIDIRECTIONAL" + UNIDIRECTIONAL = "UNIDIRECTIONAL" + UNDEFINED_OR_UNKNOWN = "UNDEFINED_OR_UNKNOWN" + def __init__(self): # noqa: E501 + """TapiCommonForwardingDirection - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonForwardingDirection': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ForwardingDirection of this TapiCommonForwardingDirection. # noqa: E501 + :rtype: TapiCommonForwardingDirection + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_details.py b/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_details.py new file mode 100644 index 0000000000000000000000000000000000000000..7ea77a174df105083f8f49a9651616177b140802 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_getserviceinterfacepointdetails_output import TapiCommonGetserviceinterfacepointdetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonGetServiceInterfacePointDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiCommonGetserviceinterfacepointdetailsOutput=None): # noqa: E501 + """TapiCommonGetServiceInterfacePointDetails - a model defined in Swagger + + :param output: The output of this TapiCommonGetServiceInterfacePointDetails. # noqa: E501 + :type output: TapiCommonGetserviceinterfacepointdetailsOutput + """ + self.swagger_types = { + 'output': TapiCommonGetserviceinterfacepointdetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGetServiceInterfacePointDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.GetServiceInterfacePointDetails of this TapiCommonGetServiceInterfacePointDetails. # noqa: E501 + :rtype: TapiCommonGetServiceInterfacePointDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiCommonGetserviceinterfacepointdetailsOutput: + """Gets the output of this TapiCommonGetServiceInterfacePointDetails. + + + :return: The output of this TapiCommonGetServiceInterfacePointDetails. + :rtype: TapiCommonGetserviceinterfacepointdetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiCommonGetserviceinterfacepointdetailsOutput): + """Sets the output of this TapiCommonGetServiceInterfacePointDetails. + + + :param output: The output of this TapiCommonGetServiceInterfacePointDetails. + :type output: TapiCommonGetserviceinterfacepointdetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_list.py b/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_list.py new file mode 100644 index 0000000000000000000000000000000000000000..932a146708384e6bc217dbafdb98e935c23f2985 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_get_service_interface_point_list.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_getserviceinterfacepointlist_output import TapiCommonGetserviceinterfacepointlistOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonGetServiceInterfacePointList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiCommonGetserviceinterfacepointlistOutput=None): # noqa: E501 + """TapiCommonGetServiceInterfacePointList - a model defined in Swagger + + :param output: The output of this TapiCommonGetServiceInterfacePointList. # noqa: E501 + :type output: TapiCommonGetserviceinterfacepointlistOutput + """ + self.swagger_types = { + 'output': TapiCommonGetserviceinterfacepointlistOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGetServiceInterfacePointList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.GetServiceInterfacePointList of this TapiCommonGetServiceInterfacePointList. # noqa: E501 + :rtype: TapiCommonGetServiceInterfacePointList + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiCommonGetserviceinterfacepointlistOutput: + """Gets the output of this TapiCommonGetServiceInterfacePointList. + + + :return: The output of this TapiCommonGetServiceInterfacePointList. + :rtype: TapiCommonGetserviceinterfacepointlistOutput + """ + return self._output + + @output.setter + def output(self, output: TapiCommonGetserviceinterfacepointlistOutput): + """Sets the output of this TapiCommonGetServiceInterfacePointList. + + + :param output: The output of this TapiCommonGetServiceInterfacePointList. + :type output: TapiCommonGetserviceinterfacepointlistOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..771db02acfbe711ef8bc7a325009c076e9e16e6f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonGetserviceinterfacepointdetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, sip_id_or_name: str=None): # noqa: E501 + """TapiCommonGetserviceinterfacepointdetailsInput - a model defined in Swagger + + :param sip_id_or_name: The sip_id_or_name of this TapiCommonGetserviceinterfacepointdetailsInput. # noqa: E501 + :type sip_id_or_name: str + """ + self.swagger_types = { + 'sip_id_or_name': str + } + + self.attribute_map = { + 'sip_id_or_name': 'sip-id-or-name' + } + self._sip_id_or_name = sip_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGetserviceinterfacepointdetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.getserviceinterfacepointdetails.Input of this TapiCommonGetserviceinterfacepointdetailsInput. # noqa: E501 + :rtype: TapiCommonGetserviceinterfacepointdetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def sip_id_or_name(self) -> str: + """Gets the sip_id_or_name of this TapiCommonGetserviceinterfacepointdetailsInput. + + none # noqa: E501 + + :return: The sip_id_or_name of this TapiCommonGetserviceinterfacepointdetailsInput. + :rtype: str + """ + return self._sip_id_or_name + + @sip_id_or_name.setter + def sip_id_or_name(self, sip_id_or_name: str): + """Sets the sip_id_or_name of this TapiCommonGetserviceinterfacepointdetailsInput. + + none # noqa: E501 + + :param sip_id_or_name: The sip_id_or_name of this TapiCommonGetserviceinterfacepointdetailsInput. + :type sip_id_or_name: str + """ + + self._sip_id_or_name = sip_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..6e3ac4e946aec8b75685d27a7710228cbdd57801 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointdetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonGetserviceinterfacepointdetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, sip: TapiCommonServiceInterfacePoint=None): # noqa: E501 + """TapiCommonGetserviceinterfacepointdetailsOutput - a model defined in Swagger + + :param sip: The sip of this TapiCommonGetserviceinterfacepointdetailsOutput. # noqa: E501 + :type sip: TapiCommonServiceInterfacePoint + """ + self.swagger_types = { + 'sip': TapiCommonServiceInterfacePoint + } + + self.attribute_map = { + 'sip': 'sip' + } + self._sip = sip + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGetserviceinterfacepointdetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.getserviceinterfacepointdetails.Output of this TapiCommonGetserviceinterfacepointdetailsOutput. # noqa: E501 + :rtype: TapiCommonGetserviceinterfacepointdetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def sip(self) -> TapiCommonServiceInterfacePoint: + """Gets the sip of this TapiCommonGetserviceinterfacepointdetailsOutput. + + + :return: The sip of this TapiCommonGetserviceinterfacepointdetailsOutput. + :rtype: TapiCommonServiceInterfacePoint + """ + return self._sip + + @sip.setter + def sip(self, sip: TapiCommonServiceInterfacePoint): + """Sets the sip of this TapiCommonGetserviceinterfacepointdetailsOutput. + + + :param sip: The sip of this TapiCommonGetserviceinterfacepointdetailsOutput. + :type sip: TapiCommonServiceInterfacePoint + """ + + self._sip = sip diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointlist_output.py b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointlist_output.py new file mode 100644 index 0000000000000000000000000000000000000000..4ecf4ee651eb7c04108a98eb36240bbcfab591f0 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_getserviceinterfacepointlist_output.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonGetserviceinterfacepointlistOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, sip: List[TapiCommonServiceInterfacePoint]=None): # noqa: E501 + """TapiCommonGetserviceinterfacepointlistOutput - a model defined in Swagger + + :param sip: The sip of this TapiCommonGetserviceinterfacepointlistOutput. # noqa: E501 + :type sip: List[TapiCommonServiceInterfacePoint] + """ + self.swagger_types = { + 'sip': List[TapiCommonServiceInterfacePoint] + } + + self.attribute_map = { + 'sip': 'sip' + } + self._sip = sip + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGetserviceinterfacepointlistOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.getserviceinterfacepointlist.Output of this TapiCommonGetserviceinterfacepointlistOutput. # noqa: E501 + :rtype: TapiCommonGetserviceinterfacepointlistOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def sip(self) -> List[TapiCommonServiceInterfacePoint]: + """Gets the sip of this TapiCommonGetserviceinterfacepointlistOutput. + + none # noqa: E501 + + :return: The sip of this TapiCommonGetserviceinterfacepointlistOutput. + :rtype: List[TapiCommonServiceInterfacePoint] + """ + return self._sip + + @sip.setter + def sip(self, sip: List[TapiCommonServiceInterfacePoint]): + """Sets the sip of this TapiCommonGetserviceinterfacepointlistOutput. + + none # noqa: E501 + + :param sip: The sip of this TapiCommonGetserviceinterfacepointlistOutput. + :type sip: List[TapiCommonServiceInterfacePoint] + """ + + self._sip = sip diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_global_class.py b/hackfest/tapi/server/tapi_server/models/tapi_common_global_class.py new file mode 100644 index 0000000000000000000000000000000000000000..001206c56f55eadcf3793f895f1c3ff47b32a0a0 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_global_class.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonGlobalClass(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None): # noqa: E501 + """TapiCommonGlobalClass - a model defined in Swagger + + :param name: The name of this TapiCommonGlobalClass. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiCommonGlobalClass. # noqa: E501 + :type uuid: str + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid' + } + self._name = name + self._uuid = uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonGlobalClass': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.GlobalClass of this TapiCommonGlobalClass. # noqa: E501 + :rtype: TapiCommonGlobalClass + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiCommonGlobalClass. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiCommonGlobalClass. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiCommonGlobalClass. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiCommonGlobalClass. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiCommonGlobalClass. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiCommonGlobalClass. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiCommonGlobalClass. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiCommonGlobalClass. + :type uuid: str + """ + + self._uuid = uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_layer_protocol_name.py b/hackfest/tapi/server/tapi_server/models/tapi_common_layer_protocol_name.py new file mode 100644 index 0000000000000000000000000000000000000000..81b6030c92f5d0552d8627e56a46c1c8eb0351c2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_layer_protocol_name.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonLayerProtocolName(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + ODU = "ODU" + ETH = "ETH" + DSR = "DSR" + PHOTONIC_MEDIA = "PHOTONIC_MEDIA" + def __init__(self): # noqa: E501 + """TapiCommonLayerProtocolName - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonLayerProtocolName': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.LayerProtocolName of this TapiCommonLayerProtocolName. # noqa: E501 + :rtype: TapiCommonLayerProtocolName + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_lifecycle_state.py b/hackfest/tapi/server/tapi_server/models/tapi_common_lifecycle_state.py new file mode 100644 index 0000000000000000000000000000000000000000..10943fcb1ce0f07b472d7c7098259099e5651c4e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_lifecycle_state.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonLifecycleState(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + PLANNED = "PLANNED" + POTENTIAL_AVAILABLE = "POTENTIAL_AVAILABLE" + POTENTIAL_BUSY = "POTENTIAL_BUSY" + INSTALLED = "INSTALLED" + PENDING_REMOVAL = "PENDING_REMOVAL" + def __init__(self): # noqa: E501 + """TapiCommonLifecycleState - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonLifecycleState': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.LifecycleState of this TapiCommonLifecycleState. # noqa: E501 + :rtype: TapiCommonLifecycleState + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_local_class.py b/hackfest/tapi/server/tapi_server/models/tapi_common_local_class.py new file mode 100644 index 0000000000000000000000000000000000000000..19b3124eb6de3220d1c6c4e586891fe760537bd3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_local_class.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonLocalClass(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None): # noqa: E501 + """TapiCommonLocalClass - a model defined in Swagger + + :param name: The name of this TapiCommonLocalClass. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiCommonLocalClass. # noqa: E501 + :type local_id: str + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id' + } + self._name = name + self._local_id = local_id + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonLocalClass': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.LocalClass of this TapiCommonLocalClass. # noqa: E501 + :rtype: TapiCommonLocalClass + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiCommonLocalClass. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiCommonLocalClass. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiCommonLocalClass. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiCommonLocalClass. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiCommonLocalClass. + + none # noqa: E501 + + :return: The local_id of this TapiCommonLocalClass. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiCommonLocalClass. + + none # noqa: E501 + + :param local_id: The local_id of this TapiCommonLocalClass. + :type local_id: str + """ + + self._local_id = local_id diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value.py b/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value.py new file mode 100644 index 0000000000000000000000000000000000000000..2afdd42e15f201f9345b2bfe74c3a9dd851abeb9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonNameAndValue(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, value_name: str=None, value: str=None): # noqa: E501 + """TapiCommonNameAndValue - a model defined in Swagger + + :param value_name: The value_name of this TapiCommonNameAndValue. # noqa: E501 + :type value_name: str + :param value: The value of this TapiCommonNameAndValue. # noqa: E501 + :type value: str + """ + self.swagger_types = { + 'value_name': str, + 'value': str + } + + self.attribute_map = { + 'value_name': 'value-name', + 'value': 'value' + } + self._value_name = value_name + self._value = value + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonNameAndValue': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.NameAndValue of this TapiCommonNameAndValue. # noqa: E501 + :rtype: TapiCommonNameAndValue + """ + return util.deserialize_model(dikt, cls) + + @property + def value_name(self) -> str: + """Gets the value_name of this TapiCommonNameAndValue. + + The name of the value. The value need not have a name. # noqa: E501 + + :return: The value_name of this TapiCommonNameAndValue. + :rtype: str + """ + return self._value_name + + @value_name.setter + def value_name(self, value_name: str): + """Sets the value_name of this TapiCommonNameAndValue. + + The name of the value. The value need not have a name. # noqa: E501 + + :param value_name: The value_name of this TapiCommonNameAndValue. + :type value_name: str + """ + + self._value_name = value_name + + @property + def value(self) -> str: + """Gets the value of this TapiCommonNameAndValue. + + The value # noqa: E501 + + :return: The value of this TapiCommonNameAndValue. + :rtype: str + """ + return self._value + + @value.setter + def value(self, value: str): + """Sets the value of this TapiCommonNameAndValue. + + The value # noqa: E501 + + :param value: The value of this TapiCommonNameAndValue. + :type value: str + """ + + self._value = value diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..7499e4beb479776717395f648961e4601a8df38f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_name_and_value_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonNameAndValueWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: TapiCommonNameAndValue=None): # noqa: E501 + """TapiCommonNameAndValueWrapper - a model defined in Swagger + + :param name: The name of this TapiCommonNameAndValueWrapper. # noqa: E501 + :type name: TapiCommonNameAndValue + """ + self.swagger_types = { + 'name': TapiCommonNameAndValue + } + + self.attribute_map = { + 'name': 'name' + } + self._name = name + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonNameAndValueWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.NameAndValueWrapper of this TapiCommonNameAndValueWrapper. # noqa: E501 + :rtype: TapiCommonNameAndValueWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> TapiCommonNameAndValue: + """Gets the name of this TapiCommonNameAndValueWrapper. + + + :return: The name of this TapiCommonNameAndValueWrapper. + :rtype: TapiCommonNameAndValue + """ + return self._name + + @name.setter + def name(self, name: TapiCommonNameAndValue): + """Sets the name of this TapiCommonNameAndValueWrapper. + + + :param name: The name of this TapiCommonNameAndValueWrapper. + :type name: TapiCommonNameAndValue + """ + + self._name = name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state.py b/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state.py new file mode 100644 index 0000000000000000000000000000000000000000..5553d96409131e764ccde232fcca50c686609eef --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonOperationalState(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + DISABLED = "DISABLED" + ENABLED = "ENABLED" + def __init__(self): # noqa: E501 + """TapiCommonOperationalState - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonOperationalState': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.OperationalState of this TapiCommonOperationalState. # noqa: E501 + :rtype: TapiCommonOperationalState + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..1eb91f23c7d9f59b10f79c7781ccf3a57419c44e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_operational_state_pac.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonOperationalStatePac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None): # noqa: E501 + """TapiCommonOperationalStatePac - a model defined in Swagger + + :param operational_state: The operational_state of this TapiCommonOperationalStatePac. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiCommonOperationalStatePac. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + """ + self.swagger_types = { + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState + } + + self.attribute_map = { + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state' + } + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonOperationalStatePac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.OperationalStatePac of this TapiCommonOperationalStatePac. # noqa: E501 + :rtype: TapiCommonOperationalStatePac + """ + return util.deserialize_model(dikt, cls) + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiCommonOperationalStatePac. + + + :return: The operational_state of this TapiCommonOperationalStatePac. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiCommonOperationalStatePac. + + + :param operational_state: The operational_state of this TapiCommonOperationalStatePac. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiCommonOperationalStatePac. + + + :return: The lifecycle_state of this TapiCommonOperationalStatePac. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiCommonOperationalStatePac. + + + :param lifecycle_state: The lifecycle_state of this TapiCommonOperationalStatePac. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_port_direction.py b/hackfest/tapi/server/tapi_server/models/tapi_common_port_direction.py new file mode 100644 index 0000000000000000000000000000000000000000..7cd3a818343084e62c7dd16a098fe6dd5f499130 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_port_direction.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonPortDirection(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + BIDIRECTIONAL = "BIDIRECTIONAL" + INPUT = "INPUT" + OUTPUT = "OUTPUT" + UNIDENTIFIED_OR_UNKNOWN = "UNIDENTIFIED_OR_UNKNOWN" + def __init__(self): # noqa: E501 + """TapiCommonPortDirection - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonPortDirection': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.PortDirection of this TapiCommonPortDirection. # noqa: E501 + :rtype: TapiCommonPortDirection + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_port_role.py b/hackfest/tapi/server/tapi_server/models/tapi_common_port_role.py new file mode 100644 index 0000000000000000000000000000000000000000..87de03b783e314711c665bc03612a3b17e61f4cf --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_port_role.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonPortRole(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + SYMMETRIC = "SYMMETRIC" + ROOT = "ROOT" + LEAF = "LEAF" + TRUNK = "TRUNK" + UNKNOWN = "UNKNOWN" + def __init__(self): # noqa: E501 + """TapiCommonPortRole - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonPortRole': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.PortRole of this TapiCommonPortRole. # noqa: E501 + :rtype: TapiCommonPortRole + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point.py b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point.py new file mode 100644 index 0000000000000000000000000000000000000000..cbc788a2cc03cb5a16048cfbb8f8f42c11a786bd --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point.py @@ -0,0 +1,312 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonServiceInterfacePoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, supported_layer_protocol_qualifier: List[str]=None, layer_protocol_name: TapiCommonLayerProtocolName=None, direction: TapiCommonPortDirection=None): # noqa: E501 + """TapiCommonServiceInterfacePoint - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type uuid: str + :param operational_state: The operational_state of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param supported_layer_protocol_qualifier: The supported_layer_protocol_qualifier of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type supported_layer_protocol_qualifier: List[str] + :param layer_protocol_name: The layer_protocol_name of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param direction: The direction of this TapiCommonServiceInterfacePoint. # noqa: E501 + :type direction: TapiCommonPortDirection + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'supported_layer_protocol_qualifier': List[str], + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'direction': TapiCommonPortDirection + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'supported_layer_protocol_qualifier': 'supported-layer-protocol-qualifier', + 'layer_protocol_name': 'layer-protocol-name', + 'direction': 'direction' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._supported_layer_protocol_qualifier = supported_layer_protocol_qualifier + self._layer_protocol_name = layer_protocol_name + self._direction = direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonServiceInterfacePoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ServiceInterfacePoint of this TapiCommonServiceInterfacePoint. # noqa: E501 + :rtype: TapiCommonServiceInterfacePoint + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiCommonServiceInterfacePoint. + + + :return: The available_capacity of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiCommonServiceInterfacePoint. + + + :param available_capacity: The available_capacity of this TapiCommonServiceInterfacePoint. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiCommonServiceInterfacePoint. + + + :return: The total_potential_capacity of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiCommonServiceInterfacePoint. + + + :param total_potential_capacity: The total_potential_capacity of this TapiCommonServiceInterfacePoint. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiCommonServiceInterfacePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiCommonServiceInterfacePoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiCommonServiceInterfacePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiCommonServiceInterfacePoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiCommonServiceInterfacePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiCommonServiceInterfacePoint. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiCommonServiceInterfacePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiCommonServiceInterfacePoint. + :type uuid: str + """ + + self._uuid = uuid + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiCommonServiceInterfacePoint. + + + :return: The operational_state of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiCommonServiceInterfacePoint. + + + :param operational_state: The operational_state of this TapiCommonServiceInterfacePoint. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiCommonServiceInterfacePoint. + + + :return: The lifecycle_state of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiCommonServiceInterfacePoint. + + + :param lifecycle_state: The lifecycle_state of this TapiCommonServiceInterfacePoint. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiCommonServiceInterfacePoint. + + + :return: The administrative_state of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiCommonServiceInterfacePoint. + + + :param administrative_state: The administrative_state of this TapiCommonServiceInterfacePoint. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def supported_layer_protocol_qualifier(self) -> List[str]: + """Gets the supported_layer_protocol_qualifier of this TapiCommonServiceInterfacePoint. + + none # noqa: E501 + + :return: The supported_layer_protocol_qualifier of this TapiCommonServiceInterfacePoint. + :rtype: List[str] + """ + return self._supported_layer_protocol_qualifier + + @supported_layer_protocol_qualifier.setter + def supported_layer_protocol_qualifier(self, supported_layer_protocol_qualifier: List[str]): + """Sets the supported_layer_protocol_qualifier of this TapiCommonServiceInterfacePoint. + + none # noqa: E501 + + :param supported_layer_protocol_qualifier: The supported_layer_protocol_qualifier of this TapiCommonServiceInterfacePoint. + :type supported_layer_protocol_qualifier: List[str] + """ + + self._supported_layer_protocol_qualifier = supported_layer_protocol_qualifier + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiCommonServiceInterfacePoint. + + + :return: The layer_protocol_name of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiCommonServiceInterfacePoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiCommonServiceInterfacePoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def direction(self) -> TapiCommonPortDirection: + """Gets the direction of this TapiCommonServiceInterfacePoint. + + + :return: The direction of this TapiCommonServiceInterfacePoint. + :rtype: TapiCommonPortDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonPortDirection): + """Sets the direction of this TapiCommonServiceInterfacePoint. + + + :param direction: The direction of this TapiCommonServiceInterfacePoint. + :type direction: TapiCommonPortDirection + """ + + self._direction = direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..8d94e5e01080e69a4a555fc607c19870e2ff0d52 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonServiceInterfacePointRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_interface_point_uuid: str=None): # noqa: E501 + """TapiCommonServiceInterfacePointRef - a model defined in Swagger + + :param service_interface_point_uuid: The service_interface_point_uuid of this TapiCommonServiceInterfacePointRef. # noqa: E501 + :type service_interface_point_uuid: str + """ + self.swagger_types = { + 'service_interface_point_uuid': str + } + + self.attribute_map = { + 'service_interface_point_uuid': 'service-interface-point-uuid' + } + self._service_interface_point_uuid = service_interface_point_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonServiceInterfacePointRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ServiceInterfacePointRef of this TapiCommonServiceInterfacePointRef. # noqa: E501 + :rtype: TapiCommonServiceInterfacePointRef + """ + return util.deserialize_model(dikt, cls) + + @property + def service_interface_point_uuid(self) -> str: + """Gets the service_interface_point_uuid of this TapiCommonServiceInterfacePointRef. + + none # noqa: E501 + + :return: The service_interface_point_uuid of this TapiCommonServiceInterfacePointRef. + :rtype: str + """ + return self._service_interface_point_uuid + + @service_interface_point_uuid.setter + def service_interface_point_uuid(self, service_interface_point_uuid: str): + """Sets the service_interface_point_uuid of this TapiCommonServiceInterfacePointRef. + + none # noqa: E501 + + :param service_interface_point_uuid: The service_interface_point_uuid of this TapiCommonServiceInterfacePointRef. + :type service_interface_point_uuid: str + """ + + self._service_interface_point_uuid = service_interface_point_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..3375982f20136bb6e6407abe59e031dd5e9414e8 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonServiceInterfacePointRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_interface_point: TapiCommonServiceInterfacePointRef=None): # noqa: E501 + """TapiCommonServiceInterfacePointRefWrapper - a model defined in Swagger + + :param service_interface_point: The service_interface_point of this TapiCommonServiceInterfacePointRefWrapper. # noqa: E501 + :type service_interface_point: TapiCommonServiceInterfacePointRef + """ + self.swagger_types = { + 'service_interface_point': TapiCommonServiceInterfacePointRef + } + + self.attribute_map = { + 'service_interface_point': 'service-interface-point' + } + self._service_interface_point = service_interface_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonServiceInterfacePointRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ServiceInterfacePointRefWrapper of this TapiCommonServiceInterfacePointRefWrapper. # noqa: E501 + :rtype: TapiCommonServiceInterfacePointRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def service_interface_point(self) -> TapiCommonServiceInterfacePointRef: + """Gets the service_interface_point of this TapiCommonServiceInterfacePointRefWrapper. + + + :return: The service_interface_point of this TapiCommonServiceInterfacePointRefWrapper. + :rtype: TapiCommonServiceInterfacePointRef + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: TapiCommonServiceInterfacePointRef): + """Sets the service_interface_point of this TapiCommonServiceInterfacePointRefWrapper. + + + :param service_interface_point: The service_interface_point of this TapiCommonServiceInterfacePointRefWrapper. + :type service_interface_point: TapiCommonServiceInterfacePointRef + """ + + self._service_interface_point = service_interface_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..b4596f121cf6263fb35c7e1fb578cb6b755b28b1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_service_interface_point_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonServiceInterfacePointWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_interface_point: TapiCommonServiceInterfacePoint=None): # noqa: E501 + """TapiCommonServiceInterfacePointWrapper - a model defined in Swagger + + :param service_interface_point: The service_interface_point of this TapiCommonServiceInterfacePointWrapper. # noqa: E501 + :type service_interface_point: TapiCommonServiceInterfacePoint + """ + self.swagger_types = { + 'service_interface_point': TapiCommonServiceInterfacePoint + } + + self.attribute_map = { + 'service_interface_point': 'service-interface-point' + } + self._service_interface_point = service_interface_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonServiceInterfacePointWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.ServiceInterfacePointWrapper of this TapiCommonServiceInterfacePointWrapper. # noqa: E501 + :rtype: TapiCommonServiceInterfacePointWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def service_interface_point(self) -> TapiCommonServiceInterfacePoint: + """Gets the service_interface_point of this TapiCommonServiceInterfacePointWrapper. + + + :return: The service_interface_point of this TapiCommonServiceInterfacePointWrapper. + :rtype: TapiCommonServiceInterfacePoint + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: TapiCommonServiceInterfacePoint): + """Sets the service_interface_point of this TapiCommonServiceInterfacePointWrapper. + + + :param service_interface_point: The service_interface_point of this TapiCommonServiceInterfacePointWrapper. + :type service_interface_point: TapiCommonServiceInterfacePoint + """ + + self._service_interface_point = service_interface_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_tapi_context.py b/hackfest/tapi/server/tapi_server/models/tapi_common_tapi_context.py new file mode 100644 index 0000000000000000000000000000000000000000..72fda0fe64f24648c3442ede0a0c87394299a549 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_tapi_context.py @@ -0,0 +1,123 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_service_interface_point import TapiCommonServiceInterfacePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonTapiContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, service_interface_point: List[TapiCommonServiceInterfacePoint]=None): # noqa: E501 + """TapiCommonTapiContext - a model defined in Swagger + + :param name: The name of this TapiCommonTapiContext. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiCommonTapiContext. # noqa: E501 + :type uuid: str + :param service_interface_point: The service_interface_point of this TapiCommonTapiContext. # noqa: E501 + :type service_interface_point: List[TapiCommonServiceInterfacePoint] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'service_interface_point': List[TapiCommonServiceInterfacePoint] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'service_interface_point': 'service-interface-point' + } + self._name = name + self._uuid = uuid + self._service_interface_point = service_interface_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTapiContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TapiContext of this TapiCommonTapiContext. # noqa: E501 + :rtype: TapiCommonTapiContext + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiCommonTapiContext. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiCommonTapiContext. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiCommonTapiContext. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiCommonTapiContext. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiCommonTapiContext. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiCommonTapiContext. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiCommonTapiContext. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiCommonTapiContext. + :type uuid: str + """ + + self._uuid = uuid + + @property + def service_interface_point(self) -> List[TapiCommonServiceInterfacePoint]: + """Gets the service_interface_point of this TapiCommonTapiContext. + + none # noqa: E501 + + :return: The service_interface_point of this TapiCommonTapiContext. + :rtype: List[TapiCommonServiceInterfacePoint] + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: List[TapiCommonServiceInterfacePoint]): + """Sets the service_interface_point of this TapiCommonTapiContext. + + none # noqa: E501 + + :param service_interface_point: The service_interface_point of this TapiCommonTapiContext. + :type service_interface_point: List[TapiCommonServiceInterfacePoint] + """ + + self._service_interface_point = service_interface_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_termination_direction.py b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_direction.py new file mode 100644 index 0000000000000000000000000000000000000000..8b14272c0922c987e114fc6a26efdf8e16b70a3e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_direction.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonTerminationDirection(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + BIDIRECTIONAL = "BIDIRECTIONAL" + SINK = "SINK" + SOURCE = "SOURCE" + UNDEFINED_OR_UNKNOWN = "UNDEFINED_OR_UNKNOWN" + def __init__(self): # noqa: E501 + """TapiCommonTerminationDirection - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTerminationDirection': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TerminationDirection of this TapiCommonTerminationDirection. # noqa: E501 + :rtype: TapiCommonTerminationDirection + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_termination_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..75d0812216efe9e9e81a575b0b9af217cd8b7710 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_pac.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_state import TapiCommonTerminationState # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonTerminationPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, termination_direction: TapiCommonTerminationDirection=None, termination_state: TapiCommonTerminationState=None): # noqa: E501 + """TapiCommonTerminationPac - a model defined in Swagger + + :param termination_direction: The termination_direction of this TapiCommonTerminationPac. # noqa: E501 + :type termination_direction: TapiCommonTerminationDirection + :param termination_state: The termination_state of this TapiCommonTerminationPac. # noqa: E501 + :type termination_state: TapiCommonTerminationState + """ + self.swagger_types = { + 'termination_direction': TapiCommonTerminationDirection, + 'termination_state': TapiCommonTerminationState + } + + self.attribute_map = { + 'termination_direction': 'termination-direction', + 'termination_state': 'termination-state' + } + self._termination_direction = termination_direction + self._termination_state = termination_state + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTerminationPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TerminationPac of this TapiCommonTerminationPac. # noqa: E501 + :rtype: TapiCommonTerminationPac + """ + return util.deserialize_model(dikt, cls) + + @property + def termination_direction(self) -> TapiCommonTerminationDirection: + """Gets the termination_direction of this TapiCommonTerminationPac. + + + :return: The termination_direction of this TapiCommonTerminationPac. + :rtype: TapiCommonTerminationDirection + """ + return self._termination_direction + + @termination_direction.setter + def termination_direction(self, termination_direction: TapiCommonTerminationDirection): + """Sets the termination_direction of this TapiCommonTerminationPac. + + + :param termination_direction: The termination_direction of this TapiCommonTerminationPac. + :type termination_direction: TapiCommonTerminationDirection + """ + + self._termination_direction = termination_direction + + @property + def termination_state(self) -> TapiCommonTerminationState: + """Gets the termination_state of this TapiCommonTerminationPac. + + + :return: The termination_state of this TapiCommonTerminationPac. + :rtype: TapiCommonTerminationState + """ + return self._termination_state + + @termination_state.setter + def termination_state(self, termination_state: TapiCommonTerminationState): + """Sets the termination_state of this TapiCommonTerminationPac. + + + :param termination_state: The termination_state of this TapiCommonTerminationPac. + :type termination_state: TapiCommonTerminationState + """ + + self._termination_state = termination_state diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_termination_state.py b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_state.py new file mode 100644 index 0000000000000000000000000000000000000000..8b90b76ac8713d9d3f1bc14d52be6a8c9566b938 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_termination_state.py @@ -0,0 +1,47 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonTerminationState(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + LP_CAN_NEVER_TERMINATE = "LP_CAN_NEVER_TERMINATE" + LT_NOT_TERMINATED = "LT_NOT_TERMINATED" + TERMINATED_SERVER_TO_CLIENT_FLOW = "TERMINATED_SERVER_TO_CLIENT_FLOW" + TERMINATED_CLIENT_TO_SERVER_FLOW = "TERMINATED_CLIENT_TO_SERVER_FLOW" + TERMINATED_BIDIRECTIONAL = "TERMINATED_BIDIRECTIONAL" + LT_PERMENANTLY_TERMINATED = "LT_PERMENANTLY_TERMINATED" + TERMINATION_STATE_UNKNOWN = "TERMINATION_STATE_UNKNOWN" + def __init__(self): # noqa: E501 + """TapiCommonTerminationState - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTerminationState': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TerminationState of this TapiCommonTerminationState. # noqa: E501 + :rtype: TapiCommonTerminationState + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_time_range.py b/hackfest/tapi/server/tapi_server/models/tapi_common_time_range.py new file mode 100644 index 0000000000000000000000000000000000000000..d4b33cea32c7caeb998485e60ac612e2c6d52267 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_time_range.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiCommonTimeRange(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, end_time: str=None, start_time: str=None): # noqa: E501 + """TapiCommonTimeRange - a model defined in Swagger + + :param end_time: The end_time of this TapiCommonTimeRange. # noqa: E501 + :type end_time: str + :param start_time: The start_time of this TapiCommonTimeRange. # noqa: E501 + :type start_time: str + """ + self.swagger_types = { + 'end_time': str, + 'start_time': str + } + + self.attribute_map = { + 'end_time': 'end-time', + 'start_time': 'start-time' + } + self._end_time = end_time + self._start_time = start_time + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTimeRange': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TimeRange of this TapiCommonTimeRange. # noqa: E501 + :rtype: TapiCommonTimeRange + """ + return util.deserialize_model(dikt, cls) + + @property + def end_time(self) -> str: + """Gets the end_time of this TapiCommonTimeRange. + + none # noqa: E501 + + :return: The end_time of this TapiCommonTimeRange. + :rtype: str + """ + return self._end_time + + @end_time.setter + def end_time(self, end_time: str): + """Sets the end_time of this TapiCommonTimeRange. + + none # noqa: E501 + + :param end_time: The end_time of this TapiCommonTimeRange. + :type end_time: str + """ + + self._end_time = end_time + + @property + def start_time(self) -> str: + """Gets the start_time of this TapiCommonTimeRange. + + none # noqa: E501 + + :return: The start_time of this TapiCommonTimeRange. + :rtype: str + """ + return self._start_time + + @start_time.setter + def start_time(self, start_time: str): + """Sets the start_time of this TapiCommonTimeRange. + + none # noqa: E501 + + :param start_time: The start_time of this TapiCommonTimeRange. + :type start_time: str + """ + + self._start_time = start_time diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_time_range_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_common_time_range_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..839c40f06015d24bfd6b0a5a74f025cc09633b6d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_time_range_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_time_range import TapiCommonTimeRange # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonTimeRangeWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, schedule: TapiCommonTimeRange=None): # noqa: E501 + """TapiCommonTimeRangeWrapper - a model defined in Swagger + + :param schedule: The schedule of this TapiCommonTimeRangeWrapper. # noqa: E501 + :type schedule: TapiCommonTimeRange + """ + self.swagger_types = { + 'schedule': TapiCommonTimeRange + } + + self.attribute_map = { + 'schedule': 'schedule' + } + self._schedule = schedule + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonTimeRangeWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.TimeRangeWrapper of this TapiCommonTimeRangeWrapper. # noqa: E501 + :rtype: TapiCommonTimeRangeWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def schedule(self) -> TapiCommonTimeRange: + """Gets the schedule of this TapiCommonTimeRangeWrapper. + + + :return: The schedule of this TapiCommonTimeRangeWrapper. + :rtype: TapiCommonTimeRange + """ + return self._schedule + + @schedule.setter + def schedule(self, schedule: TapiCommonTimeRange): + """Sets the schedule of this TapiCommonTimeRangeWrapper. + + + :param schedule: The schedule of this TapiCommonTimeRangeWrapper. + :type schedule: TapiCommonTimeRange + """ + + self._schedule = schedule diff --git a/hackfest/tapi/server/tapi_server/models/tapi_common_updateserviceinterfacepoint_input.py b/hackfest/tapi/server/tapi_server/models/tapi_common_updateserviceinterfacepoint_input.py new file mode 100644 index 0000000000000000000000000000000000000000..d2013ae157886c02b4c5d3614a7ddf35c941558a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_common_updateserviceinterfacepoint_input.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server import util + + +class TapiCommonUpdateserviceinterfacepointInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, sip_id_or_name: str=None, state: TapiCommonAdministrativeState=None): # noqa: E501 + """TapiCommonUpdateserviceinterfacepointInput - a model defined in Swagger + + :param sip_id_or_name: The sip_id_or_name of this TapiCommonUpdateserviceinterfacepointInput. # noqa: E501 + :type sip_id_or_name: str + :param state: The state of this TapiCommonUpdateserviceinterfacepointInput. # noqa: E501 + :type state: TapiCommonAdministrativeState + """ + self.swagger_types = { + 'sip_id_or_name': str, + 'state': TapiCommonAdministrativeState + } + + self.attribute_map = { + 'sip_id_or_name': 'sip-id-or-name', + 'state': 'state' + } + self._sip_id_or_name = sip_id_or_name + self._state = state + + @classmethod + def from_dict(cls, dikt) -> 'TapiCommonUpdateserviceinterfacepointInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.common.updateserviceinterfacepoint.Input of this TapiCommonUpdateserviceinterfacepointInput. # noqa: E501 + :rtype: TapiCommonUpdateserviceinterfacepointInput + """ + return util.deserialize_model(dikt, cls) + + @property + def sip_id_or_name(self) -> str: + """Gets the sip_id_or_name of this TapiCommonUpdateserviceinterfacepointInput. + + none # noqa: E501 + + :return: The sip_id_or_name of this TapiCommonUpdateserviceinterfacepointInput. + :rtype: str + """ + return self._sip_id_or_name + + @sip_id_or_name.setter + def sip_id_or_name(self, sip_id_or_name: str): + """Sets the sip_id_or_name of this TapiCommonUpdateserviceinterfacepointInput. + + none # noqa: E501 + + :param sip_id_or_name: The sip_id_or_name of this TapiCommonUpdateserviceinterfacepointInput. + :type sip_id_or_name: str + """ + + self._sip_id_or_name = sip_id_or_name + + @property + def state(self) -> TapiCommonAdministrativeState: + """Gets the state of this TapiCommonUpdateserviceinterfacepointInput. + + + :return: The state of this TapiCommonUpdateserviceinterfacepointInput. + :rtype: TapiCommonAdministrativeState + """ + return self._state + + @state.setter + def state(self, state: TapiCommonAdministrativeState): + """Sets the state of this TapiCommonUpdateserviceinterfacepointInput. + + + :param state: The state of this TapiCommonUpdateserviceinterfacepointInput. + :type state: TapiCommonAdministrativeState + """ + + self._state = state diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list.py new file mode 100644 index 0000000000000000000000000000000000000000..62c3fd0448704abca16a24f5b5ad7d6fa5056604 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_end_point import TapiConnectivityConnectionEndPoint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCepList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_end_point: List[TapiConnectivityConnectionEndPoint]=None): # noqa: E501 + """TapiConnectivityCepList - a model defined in Swagger + + :param connection_end_point: The connection_end_point of this TapiConnectivityCepList. # noqa: E501 + :type connection_end_point: List[TapiConnectivityConnectionEndPoint] + """ + self.swagger_types = { + 'connection_end_point': List[TapiConnectivityConnectionEndPoint] + } + + self.attribute_map = { + 'connection_end_point': 'connection-end-point' + } + self._connection_end_point = connection_end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCepList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CepList of this TapiConnectivityCepList. # noqa: E501 + :rtype: TapiConnectivityCepList + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_end_point(self) -> List[TapiConnectivityConnectionEndPoint]: + """Gets the connection_end_point of this TapiConnectivityCepList. + + none # noqa: E501 + + :return: The connection_end_point of this TapiConnectivityCepList. + :rtype: List[TapiConnectivityConnectionEndPoint] + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: List[TapiConnectivityConnectionEndPoint]): + """Sets the connection_end_point of this TapiConnectivityCepList. + + none # noqa: E501 + + :param connection_end_point: The connection_end_point of this TapiConnectivityCepList. + :type connection_end_point: List[TapiConnectivityConnectionEndPoint] + """ + + self._connection_end_point = connection_end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..1a8af9dcc89795d30e1f0547062dc327e1092715 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_list_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_cep_list import TapiConnectivityCepList # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCepListWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_connectivitycep_list: TapiConnectivityCepList=None): # noqa: E501 + """TapiConnectivityCepListWrapper - a model defined in Swagger + + :param tapi_connectivitycep_list: The tapi_connectivitycep_list of this TapiConnectivityCepListWrapper. # noqa: E501 + :type tapi_connectivitycep_list: TapiConnectivityCepList + """ + self.swagger_types = { + 'tapi_connectivitycep_list': TapiConnectivityCepList + } + + self.attribute_map = { + 'tapi_connectivitycep_list': 'tapi-connectivity:cep-list' + } + self._tapi_connectivitycep_list = tapi_connectivitycep_list + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCepListWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CepListWrapper of this TapiConnectivityCepListWrapper. # noqa: E501 + :rtype: TapiConnectivityCepListWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_connectivitycep_list(self) -> TapiConnectivityCepList: + """Gets the tapi_connectivitycep_list of this TapiConnectivityCepListWrapper. + + + :return: The tapi_connectivitycep_list of this TapiConnectivityCepListWrapper. + :rtype: TapiConnectivityCepList + """ + return self._tapi_connectivitycep_list + + @tapi_connectivitycep_list.setter + def tapi_connectivitycep_list(self, tapi_connectivitycep_list: TapiConnectivityCepList): + """Sets the tapi_connectivitycep_list of this TapiConnectivityCepListWrapper. + + + :param tapi_connectivitycep_list: The tapi_connectivitycep_list of this TapiConnectivityCepListWrapper. + :type tapi_connectivitycep_list: TapiConnectivityCepList + """ + + self._tapi_connectivitycep_list = tapi_connectivitycep_list diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role.py new file mode 100644 index 0000000000000000000000000000000000000000..a6fb10194c7bef2338bf5e250d75df55595de399 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_spec_reference import TapiConnectivityConnectionSpecReference # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCepRole(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, role_name: str=None, connection_spec_reference: TapiConnectivityConnectionSpecReference=None): # noqa: E501 + """TapiConnectivityCepRole - a model defined in Swagger + + :param role_name: The role_name of this TapiConnectivityCepRole. # noqa: E501 + :type role_name: str + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityCepRole. # noqa: E501 + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + """ + self.swagger_types = { + 'role_name': str, + 'connection_spec_reference': TapiConnectivityConnectionSpecReference + } + + self.attribute_map = { + 'role_name': 'role-name', + 'connection_spec_reference': 'connection-spec-reference' + } + self._role_name = role_name + self._connection_spec_reference = connection_spec_reference + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCepRole': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CepRole of this TapiConnectivityCepRole. # noqa: E501 + :rtype: TapiConnectivityCepRole + """ + return util.deserialize_model(dikt, cls) + + @property + def role_name(self) -> str: + """Gets the role_name of this TapiConnectivityCepRole. + + The name of the cep role in the context of the referenced spec. # noqa: E501 + + :return: The role_name of this TapiConnectivityCepRole. + :rtype: str + """ + return self._role_name + + @role_name.setter + def role_name(self, role_name: str): + """Sets the role_name of this TapiConnectivityCepRole. + + The name of the cep role in the context of the referenced spec. # noqa: E501 + + :param role_name: The role_name of this TapiConnectivityCepRole. + :type role_name: str + """ + + self._role_name = role_name + + @property + def connection_spec_reference(self) -> TapiConnectivityConnectionSpecReference: + """Gets the connection_spec_reference of this TapiConnectivityCepRole. + + + :return: The connection_spec_reference of this TapiConnectivityCepRole. + :rtype: TapiConnectivityConnectionSpecReference + """ + return self._connection_spec_reference + + @connection_spec_reference.setter + def connection_spec_reference(self, connection_spec_reference: TapiConnectivityConnectionSpecReference): + """Sets the connection_spec_reference of this TapiConnectivityCepRole. + + + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityCepRole. + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + """ + + self._connection_spec_reference = connection_spec_reference diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..f50a3ae02764e8a0343e72e7842043f4772e129d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_cep_role_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_cep_role import TapiConnectivityCepRole # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCepRoleWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cep_role: TapiConnectivityCepRole=None): # noqa: E501 + """TapiConnectivityCepRoleWrapper - a model defined in Swagger + + :param cep_role: The cep_role of this TapiConnectivityCepRoleWrapper. # noqa: E501 + :type cep_role: TapiConnectivityCepRole + """ + self.swagger_types = { + 'cep_role': TapiConnectivityCepRole + } + + self.attribute_map = { + 'cep_role': 'cep-role' + } + self._cep_role = cep_role + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCepRoleWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CepRoleWrapper of this TapiConnectivityCepRoleWrapper. # noqa: E501 + :rtype: TapiConnectivityCepRoleWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def cep_role(self) -> TapiConnectivityCepRole: + """Gets the cep_role of this TapiConnectivityCepRoleWrapper. + + + :return: The cep_role of this TapiConnectivityCepRoleWrapper. + :rtype: TapiConnectivityCepRole + """ + return self._cep_role + + @cep_role.setter + def cep_role(self, cep_role: TapiConnectivityCepRole): + """Sets the cep_role of this TapiConnectivityCepRoleWrapper. + + + :param cep_role: The cep_role of this TapiConnectivityCepRoleWrapper. + :type cep_role: TapiConnectivityCepRole + """ + + self._cep_role = cep_role diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..f7445787c94b8605a80e1ea24a8b8d5661357dcd --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection.py @@ -0,0 +1,375 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state_pac import TapiCommonOperationalStatePac # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_spec_reference import TapiConnectivityConnectionSpecReference # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_route import TapiConnectivityRoute # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_switch_control import TapiConnectivitySwitchControl # noqa: F401,E501 +from tapi_server.models.tapi_topology_link_ref import TapiTopologyLinkRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnection(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, supported_client_link: List[TapiTopologyLinkRef]=None, lower_connection: List[TapiConnectivityConnectionRef]=None, switch_control: List[TapiConnectivitySwitchControl]=None, route: List[TapiConnectivityRoute]=None, connection_spec_reference: TapiConnectivityConnectionSpecReference=None, layer_protocol_name: TapiCommonLayerProtocolName=None, connection_end_point: List[TapiConnectivityConnectionEndPointRef]=None, direction: TapiCommonForwardingDirection=None): # noqa: E501 + """TapiConnectivityConnection - a model defined in Swagger + + :param operational_state: The operational_state of this TapiConnectivityConnection. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnection. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param name: The name of this TapiConnectivityConnection. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiConnectivityConnection. # noqa: E501 + :type uuid: str + :param supported_client_link: The supported_client_link of this TapiConnectivityConnection. # noqa: E501 + :type supported_client_link: List[TapiTopologyLinkRef] + :param lower_connection: The lower_connection of this TapiConnectivityConnection. # noqa: E501 + :type lower_connection: List[TapiConnectivityConnectionRef] + :param switch_control: The switch_control of this TapiConnectivityConnection. # noqa: E501 + :type switch_control: List[TapiConnectivitySwitchControl] + :param route: The route of this TapiConnectivityConnection. # noqa: E501 + :type route: List[TapiConnectivityRoute] + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityConnection. # noqa: E501 + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnection. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param connection_end_point: The connection_end_point of this TapiConnectivityConnection. # noqa: E501 + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + :param direction: The direction of this TapiConnectivityConnection. # noqa: E501 + :type direction: TapiCommonForwardingDirection + """ + self.swagger_types = { + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'supported_client_link': List[TapiTopologyLinkRef], + 'lower_connection': List[TapiConnectivityConnectionRef], + 'switch_control': List[TapiConnectivitySwitchControl], + 'route': List[TapiConnectivityRoute], + 'connection_spec_reference': TapiConnectivityConnectionSpecReference, + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'connection_end_point': List[TapiConnectivityConnectionEndPointRef], + 'direction': TapiCommonForwardingDirection + } + + self.attribute_map = { + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'name': 'name', + 'uuid': 'uuid', + 'supported_client_link': 'supported-client-link', + 'lower_connection': 'lower-connection', + 'switch_control': 'switch-control', + 'route': 'route', + 'connection_spec_reference': 'connection-spec-reference', + 'layer_protocol_name': 'layer-protocol-name', + 'connection_end_point': 'connection-end-point', + 'direction': 'direction' + } + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._name = name + self._uuid = uuid + self._supported_client_link = supported_client_link + self._lower_connection = lower_connection + self._switch_control = switch_control + self._route = route + self._connection_spec_reference = connection_spec_reference + self._layer_protocol_name = layer_protocol_name + self._connection_end_point = connection_end_point + self._direction = direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnection': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.Connection of this TapiConnectivityConnection. # noqa: E501 + :rtype: TapiConnectivityConnection + """ + return util.deserialize_model(dikt, cls) + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiConnectivityConnection. + + + :return: The operational_state of this TapiConnectivityConnection. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiConnectivityConnection. + + + :param operational_state: The operational_state of this TapiConnectivityConnection. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiConnectivityConnection. + + + :return: The lifecycle_state of this TapiConnectivityConnection. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiConnectivityConnection. + + + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnection. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityConnection. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityConnection. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityConnection. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityConnection. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiConnectivityConnection. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiConnectivityConnection. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiConnectivityConnection. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiConnectivityConnection. + :type uuid: str + """ + + self._uuid = uuid + + @property + def supported_client_link(self) -> List[TapiTopologyLinkRef]: + """Gets the supported_client_link of this TapiConnectivityConnection. + + none # noqa: E501 + + :return: The supported_client_link of this TapiConnectivityConnection. + :rtype: List[TapiTopologyLinkRef] + """ + return self._supported_client_link + + @supported_client_link.setter + def supported_client_link(self, supported_client_link: List[TapiTopologyLinkRef]): + """Sets the supported_client_link of this TapiConnectivityConnection. + + none # noqa: E501 + + :param supported_client_link: The supported_client_link of this TapiConnectivityConnection. + :type supported_client_link: List[TapiTopologyLinkRef] + """ + + self._supported_client_link = supported_client_link + + @property + def lower_connection(self) -> List[TapiConnectivityConnectionRef]: + """Gets the lower_connection of this TapiConnectivityConnection. + + An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning). Aggregation is used as for the Node/Topology to allow changes in hierarchy. Connection aggregation reflects Node/Topology aggregation. The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning. # noqa: E501 + + :return: The lower_connection of this TapiConnectivityConnection. + :rtype: List[TapiConnectivityConnectionRef] + """ + return self._lower_connection + + @lower_connection.setter + def lower_connection(self, lower_connection: List[TapiConnectivityConnectionRef]): + """Sets the lower_connection of this TapiConnectivityConnection. + + An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning). Aggregation is used as for the Node/Topology to allow changes in hierarchy. Connection aggregation reflects Node/Topology aggregation. The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning. # noqa: E501 + + :param lower_connection: The lower_connection of this TapiConnectivityConnection. + :type lower_connection: List[TapiConnectivityConnectionRef] + """ + + self._lower_connection = lower_connection + + @property + def switch_control(self) -> List[TapiConnectivitySwitchControl]: + """Gets the switch_control of this TapiConnectivityConnection. + + none # noqa: E501 + + :return: The switch_control of this TapiConnectivityConnection. + :rtype: List[TapiConnectivitySwitchControl] + """ + return self._switch_control + + @switch_control.setter + def switch_control(self, switch_control: List[TapiConnectivitySwitchControl]): + """Sets the switch_control of this TapiConnectivityConnection. + + none # noqa: E501 + + :param switch_control: The switch_control of this TapiConnectivityConnection. + :type switch_control: List[TapiConnectivitySwitchControl] + """ + + self._switch_control = switch_control + + @property + def route(self) -> List[TapiConnectivityRoute]: + """Gets the route of this TapiConnectivityConnection. + + none # noqa: E501 + + :return: The route of this TapiConnectivityConnection. + :rtype: List[TapiConnectivityRoute] + """ + return self._route + + @route.setter + def route(self, route: List[TapiConnectivityRoute]): + """Sets the route of this TapiConnectivityConnection. + + none # noqa: E501 + + :param route: The route of this TapiConnectivityConnection. + :type route: List[TapiConnectivityRoute] + """ + + self._route = route + + @property + def connection_spec_reference(self) -> TapiConnectivityConnectionSpecReference: + """Gets the connection_spec_reference of this TapiConnectivityConnection. + + + :return: The connection_spec_reference of this TapiConnectivityConnection. + :rtype: TapiConnectivityConnectionSpecReference + """ + return self._connection_spec_reference + + @connection_spec_reference.setter + def connection_spec_reference(self, connection_spec_reference: TapiConnectivityConnectionSpecReference): + """Sets the connection_spec_reference of this TapiConnectivityConnection. + + + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityConnection. + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + """ + + self._connection_spec_reference = connection_spec_reference + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiConnectivityConnection. + + + :return: The layer_protocol_name of this TapiConnectivityConnection. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiConnectivityConnection. + + + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnection. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def connection_end_point(self) -> List[TapiConnectivityConnectionEndPointRef]: + """Gets the connection_end_point of this TapiConnectivityConnection. + + none # noqa: E501 + + :return: The connection_end_point of this TapiConnectivityConnection. + :rtype: List[TapiConnectivityConnectionEndPointRef] + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: List[TapiConnectivityConnectionEndPointRef]): + """Sets the connection_end_point of this TapiConnectivityConnection. + + none # noqa: E501 + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnection. + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + """ + + self._connection_end_point = connection_end_point + + @property + def direction(self) -> TapiCommonForwardingDirection: + """Gets the direction of this TapiConnectivityConnection. + + + :return: The direction of this TapiConnectivityConnection. + :rtype: TapiCommonForwardingDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonForwardingDirection): + """Sets the direction of this TapiConnectivityConnection. + + + :param direction: The direction of this TapiConnectivityConnection. + :type direction: TapiCommonForwardingDirection + """ + + self._direction = direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point.py new file mode 100644 index 0000000000000000000000000000000000000000..19dff9cb6cf0858f1dd585ac154ebc4c57a5705d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point.py @@ -0,0 +1,426 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state_pac import TapiCommonOperationalStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_pac import TapiCommonTerminationPac # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_state import TapiCommonTerminationState # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_cep_role import TapiConnectivityCepRole # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionEndPoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, termination_direction: TapiCommonTerminationDirection=None, termination_state: TapiCommonTerminationState=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, client_node_edge_point: List[TapiTopologyNodeEdgePointRef]=None, connection_port_role: TapiCommonPortRole=None, layer_protocol_name: TapiCommonLayerProtocolName=None, layer_protocol_qualifier: str=None, parent_node_edge_point: TapiTopologyNodeEdgePointRef=None, cep_role: List[TapiConnectivityCepRole]=None, aggregated_connection_end_point: List[TapiConnectivityConnectionEndPointRef]=None, connection_port_direction: TapiCommonPortDirection=None): # noqa: E501 + """TapiConnectivityConnectionEndPoint - a model defined in Swagger + + :param operational_state: The operational_state of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param termination_direction: The termination_direction of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type termination_direction: TapiCommonTerminationDirection + :param termination_state: The termination_state of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type termination_state: TapiCommonTerminationState + :param name: The name of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type uuid: str + :param client_node_edge_point: The client_node_edge_point of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type client_node_edge_point: List[TapiTopologyNodeEdgePointRef] + :param connection_port_role: The connection_port_role of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type connection_port_role: TapiCommonPortRole + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type layer_protocol_qualifier: str + :param parent_node_edge_point: The parent_node_edge_point of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type parent_node_edge_point: TapiTopologyNodeEdgePointRef + :param cep_role: The cep_role of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type cep_role: List[TapiConnectivityCepRole] + :param aggregated_connection_end_point: The aggregated_connection_end_point of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type aggregated_connection_end_point: List[TapiConnectivityConnectionEndPointRef] + :param connection_port_direction: The connection_port_direction of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :type connection_port_direction: TapiCommonPortDirection + """ + self.swagger_types = { + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'termination_direction': TapiCommonTerminationDirection, + 'termination_state': TapiCommonTerminationState, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'client_node_edge_point': List[TapiTopologyNodeEdgePointRef], + 'connection_port_role': TapiCommonPortRole, + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'layer_protocol_qualifier': str, + 'parent_node_edge_point': TapiTopologyNodeEdgePointRef, + 'cep_role': List[TapiConnectivityCepRole], + 'aggregated_connection_end_point': List[TapiConnectivityConnectionEndPointRef], + 'connection_port_direction': TapiCommonPortDirection + } + + self.attribute_map = { + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'termination_direction': 'termination-direction', + 'termination_state': 'termination-state', + 'name': 'name', + 'uuid': 'uuid', + 'client_node_edge_point': 'client-node-edge-point', + 'connection_port_role': 'connection-port-role', + 'layer_protocol_name': 'layer-protocol-name', + 'layer_protocol_qualifier': 'layer-protocol-qualifier', + 'parent_node_edge_point': 'parent-node-edge-point', + 'cep_role': 'cep-role', + 'aggregated_connection_end_point': 'aggregated-connection-end-point', + 'connection_port_direction': 'connection-port-direction' + } + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._termination_direction = termination_direction + self._termination_state = termination_state + self._name = name + self._uuid = uuid + self._client_node_edge_point = client_node_edge_point + self._connection_port_role = connection_port_role + self._layer_protocol_name = layer_protocol_name + self._layer_protocol_qualifier = layer_protocol_qualifier + self._parent_node_edge_point = parent_node_edge_point + self._cep_role = cep_role + self._aggregated_connection_end_point = aggregated_connection_end_point + self._connection_port_direction = connection_port_direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionEndPoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionEndPoint of this TapiConnectivityConnectionEndPoint. # noqa: E501 + :rtype: TapiConnectivityConnectionEndPoint + """ + return util.deserialize_model(dikt, cls) + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiConnectivityConnectionEndPoint. + + + :return: The operational_state of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiConnectivityConnectionEndPoint. + + + :param operational_state: The operational_state of this TapiConnectivityConnectionEndPoint. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiConnectivityConnectionEndPoint. + + + :return: The lifecycle_state of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiConnectivityConnectionEndPoint. + + + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectionEndPoint. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def termination_direction(self) -> TapiCommonTerminationDirection: + """Gets the termination_direction of this TapiConnectivityConnectionEndPoint. + + + :return: The termination_direction of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonTerminationDirection + """ + return self._termination_direction + + @termination_direction.setter + def termination_direction(self, termination_direction: TapiCommonTerminationDirection): + """Sets the termination_direction of this TapiConnectivityConnectionEndPoint. + + + :param termination_direction: The termination_direction of this TapiConnectivityConnectionEndPoint. + :type termination_direction: TapiCommonTerminationDirection + """ + + self._termination_direction = termination_direction + + @property + def termination_state(self) -> TapiCommonTerminationState: + """Gets the termination_state of this TapiConnectivityConnectionEndPoint. + + + :return: The termination_state of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonTerminationState + """ + return self._termination_state + + @termination_state.setter + def termination_state(self, termination_state: TapiCommonTerminationState): + """Sets the termination_state of this TapiConnectivityConnectionEndPoint. + + + :param termination_state: The termination_state of this TapiConnectivityConnectionEndPoint. + :type termination_state: TapiCommonTerminationState + """ + + self._termination_state = termination_state + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityConnectionEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityConnectionEndPoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityConnectionEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityConnectionEndPoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiConnectivityConnectionEndPoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiConnectivityConnectionEndPoint. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiConnectivityConnectionEndPoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiConnectivityConnectionEndPoint. + :type uuid: str + """ + + self._uuid = uuid + + @property + def client_node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the client_node_edge_point of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :return: The client_node_edge_point of this TapiConnectivityConnectionEndPoint. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._client_node_edge_point + + @client_node_edge_point.setter + def client_node_edge_point(self, client_node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the client_node_edge_point of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :param client_node_edge_point: The client_node_edge_point of this TapiConnectivityConnectionEndPoint. + :type client_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._client_node_edge_point = client_node_edge_point + + @property + def connection_port_role(self) -> TapiCommonPortRole: + """Gets the connection_port_role of this TapiConnectivityConnectionEndPoint. + + + :return: The connection_port_role of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonPortRole + """ + return self._connection_port_role + + @connection_port_role.setter + def connection_port_role(self, connection_port_role: TapiCommonPortRole): + """Sets the connection_port_role of this TapiConnectivityConnectionEndPoint. + + + :param connection_port_role: The connection_port_role of this TapiConnectivityConnectionEndPoint. + :type connection_port_role: TapiCommonPortRole + """ + + self._connection_port_role = connection_port_role + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiConnectivityConnectionEndPoint. + + + :return: The layer_protocol_name of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiConnectivityConnectionEndPoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnectionEndPoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def layer_protocol_qualifier(self) -> str: + """Gets the layer_protocol_qualifier of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :return: The layer_protocol_qualifier of this TapiConnectivityConnectionEndPoint. + :rtype: str + """ + return self._layer_protocol_qualifier + + @layer_protocol_qualifier.setter + def layer_protocol_qualifier(self, layer_protocol_qualifier: str): + """Sets the layer_protocol_qualifier of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiConnectivityConnectionEndPoint. + :type layer_protocol_qualifier: str + """ + + self._layer_protocol_qualifier = layer_protocol_qualifier + + @property + def parent_node_edge_point(self) -> TapiTopologyNodeEdgePointRef: + """Gets the parent_node_edge_point of this TapiConnectivityConnectionEndPoint. + + + :return: The parent_node_edge_point of this TapiConnectivityConnectionEndPoint. + :rtype: TapiTopologyNodeEdgePointRef + """ + return self._parent_node_edge_point + + @parent_node_edge_point.setter + def parent_node_edge_point(self, parent_node_edge_point: TapiTopologyNodeEdgePointRef): + """Sets the parent_node_edge_point of this TapiConnectivityConnectionEndPoint. + + + :param parent_node_edge_point: The parent_node_edge_point of this TapiConnectivityConnectionEndPoint. + :type parent_node_edge_point: TapiTopologyNodeEdgePointRef + """ + + self._parent_node_edge_point = parent_node_edge_point + + @property + def cep_role(self) -> List[TapiConnectivityCepRole]: + """Gets the cep_role of this TapiConnectivityConnectionEndPoint. + + Defines the role of the CEP in the context of the connection spec. There may be many cep role - connection spec combinations for a particular CEP where each corresponds to a specific connection associated with the CEP. # noqa: E501 + + :return: The cep_role of this TapiConnectivityConnectionEndPoint. + :rtype: List[TapiConnectivityCepRole] + """ + return self._cep_role + + @cep_role.setter + def cep_role(self, cep_role: List[TapiConnectivityCepRole]): + """Sets the cep_role of this TapiConnectivityConnectionEndPoint. + + Defines the role of the CEP in the context of the connection spec. There may be many cep role - connection spec combinations for a particular CEP where each corresponds to a specific connection associated with the CEP. # noqa: E501 + + :param cep_role: The cep_role of this TapiConnectivityConnectionEndPoint. + :type cep_role: List[TapiConnectivityCepRole] + """ + + self._cep_role = cep_role + + @property + def aggregated_connection_end_point(self) -> List[TapiConnectivityConnectionEndPointRef]: + """Gets the aggregated_connection_end_point of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :return: The aggregated_connection_end_point of this TapiConnectivityConnectionEndPoint. + :rtype: List[TapiConnectivityConnectionEndPointRef] + """ + return self._aggregated_connection_end_point + + @aggregated_connection_end_point.setter + def aggregated_connection_end_point(self, aggregated_connection_end_point: List[TapiConnectivityConnectionEndPointRef]): + """Sets the aggregated_connection_end_point of this TapiConnectivityConnectionEndPoint. + + none # noqa: E501 + + :param aggregated_connection_end_point: The aggregated_connection_end_point of this TapiConnectivityConnectionEndPoint. + :type aggregated_connection_end_point: List[TapiConnectivityConnectionEndPointRef] + """ + + self._aggregated_connection_end_point = aggregated_connection_end_point + + @property + def connection_port_direction(self) -> TapiCommonPortDirection: + """Gets the connection_port_direction of this TapiConnectivityConnectionEndPoint. + + + :return: The connection_port_direction of this TapiConnectivityConnectionEndPoint. + :rtype: TapiCommonPortDirection + """ + return self._connection_port_direction + + @connection_port_direction.setter + def connection_port_direction(self, connection_port_direction: TapiCommonPortDirection): + """Sets the connection_port_direction of this TapiConnectivityConnectionEndPoint. + + + :param connection_port_direction: The connection_port_direction of this TapiConnectivityConnectionEndPoint. + :type connection_port_direction: TapiCommonPortDirection + """ + + self._connection_port_direction = connection_port_direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..5427e65c842e923a7d0ee5980c3fc50b5476ff31 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionEndPointRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_edge_point_uuid: str=None, connection_end_point_uuid: str=None): # noqa: E501 + """TapiConnectivityConnectionEndPointRef - a model defined in Swagger + + :param node_edge_point_uuid: The node_edge_point_uuid of this TapiConnectivityConnectionEndPointRef. # noqa: E501 + :type node_edge_point_uuid: str + :param connection_end_point_uuid: The connection_end_point_uuid of this TapiConnectivityConnectionEndPointRef. # noqa: E501 + :type connection_end_point_uuid: str + """ + self.swagger_types = { + 'node_edge_point_uuid': str, + 'connection_end_point_uuid': str + } + + self.attribute_map = { + 'node_edge_point_uuid': 'node-edge-point-uuid', + 'connection_end_point_uuid': 'connection-end-point-uuid' + } + self._node_edge_point_uuid = node_edge_point_uuid + self._connection_end_point_uuid = connection_end_point_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionEndPointRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionEndPointRef of this TapiConnectivityConnectionEndPointRef. # noqa: E501 + :rtype: TapiConnectivityConnectionEndPointRef + """ + return util.deserialize_model(dikt, cls) + + @property + def node_edge_point_uuid(self) -> str: + """Gets the node_edge_point_uuid of this TapiConnectivityConnectionEndPointRef. + + none # noqa: E501 + + :return: The node_edge_point_uuid of this TapiConnectivityConnectionEndPointRef. + :rtype: str + """ + return self._node_edge_point_uuid + + @node_edge_point_uuid.setter + def node_edge_point_uuid(self, node_edge_point_uuid: str): + """Sets the node_edge_point_uuid of this TapiConnectivityConnectionEndPointRef. + + none # noqa: E501 + + :param node_edge_point_uuid: The node_edge_point_uuid of this TapiConnectivityConnectionEndPointRef. + :type node_edge_point_uuid: str + """ + + self._node_edge_point_uuid = node_edge_point_uuid + + @property + def connection_end_point_uuid(self) -> str: + """Gets the connection_end_point_uuid of this TapiConnectivityConnectionEndPointRef. + + none # noqa: E501 + + :return: The connection_end_point_uuid of this TapiConnectivityConnectionEndPointRef. + :rtype: str + """ + return self._connection_end_point_uuid + + @connection_end_point_uuid.setter + def connection_end_point_uuid(self, connection_end_point_uuid: str): + """Sets the connection_end_point_uuid of this TapiConnectivityConnectionEndPointRef. + + none # noqa: E501 + + :param connection_end_point_uuid: The connection_end_point_uuid of this TapiConnectivityConnectionEndPointRef. + :type connection_end_point_uuid: str + """ + + self._connection_end_point_uuid = connection_end_point_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..11fe0103da2145d4f07c1a0f0bd6ae951b214cd1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionEndPointRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_end_point: TapiConnectivityConnectionEndPointRef=None): # noqa: E501 + """TapiConnectivityConnectionEndPointRefWrapper - a model defined in Swagger + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectionEndPointRefWrapper. # noqa: E501 + :type connection_end_point: TapiConnectivityConnectionEndPointRef + """ + self.swagger_types = { + 'connection_end_point': TapiConnectivityConnectionEndPointRef + } + + self.attribute_map = { + 'connection_end_point': 'connection-end-point' + } + self._connection_end_point = connection_end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionEndPointRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionEndPointRefWrapper of this TapiConnectivityConnectionEndPointRefWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectionEndPointRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_end_point(self) -> TapiConnectivityConnectionEndPointRef: + """Gets the connection_end_point of this TapiConnectivityConnectionEndPointRefWrapper. + + + :return: The connection_end_point of this TapiConnectivityConnectionEndPointRefWrapper. + :rtype: TapiConnectivityConnectionEndPointRef + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: TapiConnectivityConnectionEndPointRef): + """Sets the connection_end_point of this TapiConnectivityConnectionEndPointRefWrapper. + + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectionEndPointRefWrapper. + :type connection_end_point: TapiConnectivityConnectionEndPointRef + """ + + self._connection_end_point = connection_end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..fd2655643793a6400eae6a43b3175d226b031247 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_end_point_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_end_point import TapiConnectivityConnectionEndPoint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionEndPointWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_end_point: TapiConnectivityConnectionEndPoint=None): # noqa: E501 + """TapiConnectivityConnectionEndPointWrapper - a model defined in Swagger + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectionEndPointWrapper. # noqa: E501 + :type connection_end_point: TapiConnectivityConnectionEndPoint + """ + self.swagger_types = { + 'connection_end_point': TapiConnectivityConnectionEndPoint + } + + self.attribute_map = { + 'connection_end_point': 'connection-end-point' + } + self._connection_end_point = connection_end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionEndPointWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionEndPointWrapper of this TapiConnectivityConnectionEndPointWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectionEndPointWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_end_point(self) -> TapiConnectivityConnectionEndPoint: + """Gets the connection_end_point of this TapiConnectivityConnectionEndPointWrapper. + + + :return: The connection_end_point of this TapiConnectivityConnectionEndPointWrapper. + :rtype: TapiConnectivityConnectionEndPoint + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: TapiConnectivityConnectionEndPoint): + """Sets the connection_end_point of this TapiConnectivityConnectionEndPointWrapper. + + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectionEndPointWrapper. + :type connection_end_point: TapiConnectivityConnectionEndPoint + """ + + self._connection_end_point = connection_end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..80d2e90e40819da52be9d209cb6a68467eca88db --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityConnectionRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_uuid: str=None): # noqa: E501 + """TapiConnectivityConnectionRef - a model defined in Swagger + + :param connection_uuid: The connection_uuid of this TapiConnectivityConnectionRef. # noqa: E501 + :type connection_uuid: str + """ + self.swagger_types = { + 'connection_uuid': str + } + + self.attribute_map = { + 'connection_uuid': 'connection-uuid' + } + self._connection_uuid = connection_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionRef of this TapiConnectivityConnectionRef. # noqa: E501 + :rtype: TapiConnectivityConnectionRef + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_uuid(self) -> str: + """Gets the connection_uuid of this TapiConnectivityConnectionRef. + + none # noqa: E501 + + :return: The connection_uuid of this TapiConnectivityConnectionRef. + :rtype: str + """ + return self._connection_uuid + + @connection_uuid.setter + def connection_uuid(self, connection_uuid: str): + """Sets the connection_uuid of this TapiConnectivityConnectionRef. + + none # noqa: E501 + + :param connection_uuid: The connection_uuid of this TapiConnectivityConnectionRef. + :type connection_uuid: str + """ + + self._connection_uuid = connection_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..415bfb1db5ff8286a412d428fbe8ed6e8484b549 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, lower_connection: TapiConnectivityConnectionRef=None): # noqa: E501 + """TapiConnectivityConnectionRefWrapper - a model defined in Swagger + + :param lower_connection: The lower_connection of this TapiConnectivityConnectionRefWrapper. # noqa: E501 + :type lower_connection: TapiConnectivityConnectionRef + """ + self.swagger_types = { + 'lower_connection': TapiConnectivityConnectionRef + } + + self.attribute_map = { + 'lower_connection': 'lower-connection' + } + self._lower_connection = lower_connection + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionRefWrapper of this TapiConnectivityConnectionRefWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectionRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def lower_connection(self) -> TapiConnectivityConnectionRef: + """Gets the lower_connection of this TapiConnectivityConnectionRefWrapper. + + + :return: The lower_connection of this TapiConnectivityConnectionRefWrapper. + :rtype: TapiConnectivityConnectionRef + """ + return self._lower_connection + + @lower_connection.setter + def lower_connection(self, lower_connection: TapiConnectivityConnectionRef): + """Sets the lower_connection of this TapiConnectivityConnectionRefWrapper. + + + :param lower_connection: The lower_connection of this TapiConnectivityConnectionRefWrapper. + :type lower_connection: TapiConnectivityConnectionRef + """ + + self._lower_connection = lower_connection diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference.py new file mode 100644 index 0000000000000000000000000000000000000000..9e423d754a31e5df242595e35da2f0a62a1d2b76 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityConnectionSpecReference(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_spec_name: str=None, connection_spec_id: str=None): # noqa: E501 + """TapiConnectivityConnectionSpecReference - a model defined in Swagger + + :param connection_spec_name: The connection_spec_name of this TapiConnectivityConnectionSpecReference. # noqa: E501 + :type connection_spec_name: str + :param connection_spec_id: The connection_spec_id of this TapiConnectivityConnectionSpecReference. # noqa: E501 + :type connection_spec_id: str + """ + self.swagger_types = { + 'connection_spec_name': str, + 'connection_spec_id': str + } + + self.attribute_map = { + 'connection_spec_name': 'connection-spec-name', + 'connection_spec_id': 'connection-spec-id' + } + self._connection_spec_name = connection_spec_name + self._connection_spec_id = connection_spec_id + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionSpecReference': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionSpecReference of this TapiConnectivityConnectionSpecReference. # noqa: E501 + :rtype: TapiConnectivityConnectionSpecReference + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_spec_name(self) -> str: + """Gets the connection_spec_name of this TapiConnectivityConnectionSpecReference. + + The name of the connection spec. This can be used alone (with no spec reference) where there is only a paper spec. # noqa: E501 + + :return: The connection_spec_name of this TapiConnectivityConnectionSpecReference. + :rtype: str + """ + return self._connection_spec_name + + @connection_spec_name.setter + def connection_spec_name(self, connection_spec_name: str): + """Sets the connection_spec_name of this TapiConnectivityConnectionSpecReference. + + The name of the connection spec. This can be used alone (with no spec reference) where there is only a paper spec. # noqa: E501 + + :param connection_spec_name: The connection_spec_name of this TapiConnectivityConnectionSpecReference. + :type connection_spec_name: str + """ + + self._connection_spec_name = connection_spec_name + + @property + def connection_spec_id(self) -> str: + """Gets the connection_spec_id of this TapiConnectivityConnectionSpecReference. + + The reference to a formal spec. This reference need not be provided (e.g., where there is no formal machine interpretable spec for the type of connection). # noqa: E501 + + :return: The connection_spec_id of this TapiConnectivityConnectionSpecReference. + :rtype: str + """ + return self._connection_spec_id + + @connection_spec_id.setter + def connection_spec_id(self, connection_spec_id: str): + """Sets the connection_spec_id of this TapiConnectivityConnectionSpecReference. + + The reference to a formal spec. This reference need not be provided (e.g., where there is no formal machine interpretable spec for the type of connection). # noqa: E501 + + :param connection_spec_id: The connection_spec_id of this TapiConnectivityConnectionSpecReference. + :type connection_spec_id: str + """ + + self._connection_spec_id = connection_spec_id diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..877ef242826fd9a7ff5400c99b249f1f0c28d27b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_spec_reference_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_spec_reference import TapiConnectivityConnectionSpecReference # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionSpecReferenceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_spec_reference: TapiConnectivityConnectionSpecReference=None): # noqa: E501 + """TapiConnectivityConnectionSpecReferenceWrapper - a model defined in Swagger + + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityConnectionSpecReferenceWrapper. # noqa: E501 + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + """ + self.swagger_types = { + 'connection_spec_reference': TapiConnectivityConnectionSpecReference + } + + self.attribute_map = { + 'connection_spec_reference': 'connection-spec-reference' + } + self._connection_spec_reference = connection_spec_reference + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionSpecReferenceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionSpecReferenceWrapper of this TapiConnectivityConnectionSpecReferenceWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectionSpecReferenceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_spec_reference(self) -> TapiConnectivityConnectionSpecReference: + """Gets the connection_spec_reference of this TapiConnectivityConnectionSpecReferenceWrapper. + + + :return: The connection_spec_reference of this TapiConnectivityConnectionSpecReferenceWrapper. + :rtype: TapiConnectivityConnectionSpecReference + """ + return self._connection_spec_reference + + @connection_spec_reference.setter + def connection_spec_reference(self, connection_spec_reference: TapiConnectivityConnectionSpecReference): + """Sets the connection_spec_reference of this TapiConnectivityConnectionSpecReferenceWrapper. + + + :param connection_spec_reference: The connection_spec_reference of this TapiConnectivityConnectionSpecReferenceWrapper. + :type connection_spec_reference: TapiConnectivityConnectionSpecReference + """ + + self._connection_spec_reference = connection_spec_reference diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..fbdf9c64bab9a5cda5335ba481b044d75417f283 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connection_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection import TapiConnectivityConnection # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectionWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection: TapiConnectivityConnection=None): # noqa: E501 + """TapiConnectivityConnectionWrapper - a model defined in Swagger + + :param connection: The connection of this TapiConnectivityConnectionWrapper. # noqa: E501 + :type connection: TapiConnectivityConnection + """ + self.swagger_types = { + 'connection': TapiConnectivityConnection + } + + self.attribute_map = { + 'connection': 'connection' + } + self._connection = connection + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectionWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectionWrapper of this TapiConnectivityConnectionWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectionWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connection(self) -> TapiConnectivityConnection: + """Gets the connection of this TapiConnectivityConnectionWrapper. + + + :return: The connection of this TapiConnectivityConnectionWrapper. + :rtype: TapiConnectivityConnection + """ + return self._connection + + @connection.setter + def connection(self, connection: TapiConnectivityConnection): + """Sets the connection of this TapiConnectivityConnectionWrapper. + + + :param connection: The connection of this TapiConnectivityConnectionWrapper. + :type connection: TapiConnectivityConnection + """ + + self._connection = connection diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_constraint.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_constraint.py new file mode 100644 index 0000000000000000000000000000000000000000..bd3a88a780b8b533e280bd813bf6910cb6269c4a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_constraint.py @@ -0,0 +1,310 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_time_range import TapiCommonTimeRange # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_ref import TapiConnectivityConnectivityServiceRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_service_type import TapiConnectivityServiceType # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityConstraint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_layer: TapiCommonLayerProtocolName=None, schedule: TapiCommonTimeRange=None, connectivity_direction: TapiCommonForwardingDirection=None, requested_capacity: TapiCommonCapacity=None, diversity_exclusion: List[TapiConnectivityConnectivityServiceRef]=None, connection_inclusion: List[str]=None, service_level: str=None, service_type: TapiConnectivityServiceType=None, connection_exclusion: List[str]=None, coroute_inclusion: TapiConnectivityConnectivityServiceRef=None): # noqa: E501 + """TapiConnectivityConnectivityConstraint - a model defined in Swagger + + :param service_layer: The service_layer of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type service_layer: TapiCommonLayerProtocolName + :param schedule: The schedule of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type schedule: TapiCommonTimeRange + :param connectivity_direction: The connectivity_direction of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type connectivity_direction: TapiCommonForwardingDirection + :param requested_capacity: The requested_capacity of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type requested_capacity: TapiCommonCapacity + :param diversity_exclusion: The diversity_exclusion of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type diversity_exclusion: List[TapiConnectivityConnectivityServiceRef] + :param connection_inclusion: The connection_inclusion of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type connection_inclusion: List[str] + :param service_level: The service_level of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type service_level: str + :param service_type: The service_type of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type service_type: TapiConnectivityServiceType + :param connection_exclusion: The connection_exclusion of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type connection_exclusion: List[str] + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + """ + self.swagger_types = { + 'service_layer': TapiCommonLayerProtocolName, + 'schedule': TapiCommonTimeRange, + 'connectivity_direction': TapiCommonForwardingDirection, + 'requested_capacity': TapiCommonCapacity, + 'diversity_exclusion': List[TapiConnectivityConnectivityServiceRef], + 'connection_inclusion': List[str], + 'service_level': str, + 'service_type': TapiConnectivityServiceType, + 'connection_exclusion': List[str], + 'coroute_inclusion': TapiConnectivityConnectivityServiceRef + } + + self.attribute_map = { + 'service_layer': 'service-layer', + 'schedule': 'schedule', + 'connectivity_direction': 'connectivity-direction', + 'requested_capacity': 'requested-capacity', + 'diversity_exclusion': 'diversity-exclusion', + 'connection_inclusion': 'connection-inclusion', + 'service_level': 'service-level', + 'service_type': 'service-type', + 'connection_exclusion': 'connection-exclusion', + 'coroute_inclusion': 'coroute-inclusion' + } + self._service_layer = service_layer + self._schedule = schedule + self._connectivity_direction = connectivity_direction + self._requested_capacity = requested_capacity + self._diversity_exclusion = diversity_exclusion + self._connection_inclusion = connection_inclusion + self._service_level = service_level + self._service_type = service_type + self._connection_exclusion = connection_exclusion + self._coroute_inclusion = coroute_inclusion + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityConstraint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityConstraint of this TapiConnectivityConnectivityConstraint. # noqa: E501 + :rtype: TapiConnectivityConnectivityConstraint + """ + return util.deserialize_model(dikt, cls) + + @property + def service_layer(self) -> TapiCommonLayerProtocolName: + """Gets the service_layer of this TapiConnectivityConnectivityConstraint. + + + :return: The service_layer of this TapiConnectivityConnectivityConstraint. + :rtype: TapiCommonLayerProtocolName + """ + return self._service_layer + + @service_layer.setter + def service_layer(self, service_layer: TapiCommonLayerProtocolName): + """Sets the service_layer of this TapiConnectivityConnectivityConstraint. + + + :param service_layer: The service_layer of this TapiConnectivityConnectivityConstraint. + :type service_layer: TapiCommonLayerProtocolName + """ + + self._service_layer = service_layer + + @property + def schedule(self) -> TapiCommonTimeRange: + """Gets the schedule of this TapiConnectivityConnectivityConstraint. + + + :return: The schedule of this TapiConnectivityConnectivityConstraint. + :rtype: TapiCommonTimeRange + """ + return self._schedule + + @schedule.setter + def schedule(self, schedule: TapiCommonTimeRange): + """Sets the schedule of this TapiConnectivityConnectivityConstraint. + + + :param schedule: The schedule of this TapiConnectivityConnectivityConstraint. + :type schedule: TapiCommonTimeRange + """ + + self._schedule = schedule + + @property + def connectivity_direction(self) -> TapiCommonForwardingDirection: + """Gets the connectivity_direction of this TapiConnectivityConnectivityConstraint. + + + :return: The connectivity_direction of this TapiConnectivityConnectivityConstraint. + :rtype: TapiCommonForwardingDirection + """ + return self._connectivity_direction + + @connectivity_direction.setter + def connectivity_direction(self, connectivity_direction: TapiCommonForwardingDirection): + """Sets the connectivity_direction of this TapiConnectivityConnectivityConstraint. + + + :param connectivity_direction: The connectivity_direction of this TapiConnectivityConnectivityConstraint. + :type connectivity_direction: TapiCommonForwardingDirection + """ + + self._connectivity_direction = connectivity_direction + + @property + def requested_capacity(self) -> TapiCommonCapacity: + """Gets the requested_capacity of this TapiConnectivityConnectivityConstraint. + + + :return: The requested_capacity of this TapiConnectivityConnectivityConstraint. + :rtype: TapiCommonCapacity + """ + return self._requested_capacity + + @requested_capacity.setter + def requested_capacity(self, requested_capacity: TapiCommonCapacity): + """Sets the requested_capacity of this TapiConnectivityConnectivityConstraint. + + + :param requested_capacity: The requested_capacity of this TapiConnectivityConnectivityConstraint. + :type requested_capacity: TapiCommonCapacity + """ + + self._requested_capacity = requested_capacity + + @property + def diversity_exclusion(self) -> List[TapiConnectivityConnectivityServiceRef]: + """Gets the diversity_exclusion of this TapiConnectivityConnectivityConstraint. + + none # noqa: E501 + + :return: The diversity_exclusion of this TapiConnectivityConnectivityConstraint. + :rtype: List[TapiConnectivityConnectivityServiceRef] + """ + return self._diversity_exclusion + + @diversity_exclusion.setter + def diversity_exclusion(self, diversity_exclusion: List[TapiConnectivityConnectivityServiceRef]): + """Sets the diversity_exclusion of this TapiConnectivityConnectivityConstraint. + + none # noqa: E501 + + :param diversity_exclusion: The diversity_exclusion of this TapiConnectivityConnectivityConstraint. + :type diversity_exclusion: List[TapiConnectivityConnectivityServiceRef] + """ + + self._diversity_exclusion = diversity_exclusion + + @property + def connection_inclusion(self) -> List[str]: + """Gets the connection_inclusion of this TapiConnectivityConnectivityConstraint. + + A ConnectivityService may use one or more existing Connections. A common traditional strategy is to set up “stranded” connectivity in the core of the network as “express channels” (this is essentially a serial compound link, but can be treated as simple connections) A connection inclusion capability allows for adoption of a discovered Connections. A ConnectivityService is requested with a connection inclusion constraint that identifies a connection (or chain of connections) that is bounded by CEPs that each belong to a NEP that references a SIP that is referenced by a CSEP of the ConnectivityService such that all CSEPs are satisfied by CEPs of the existing Connection. will allow discovered Connections with no stated intent to be associated with an intent via the ConnectivityService. # noqa: E501 + + :return: The connection_inclusion of this TapiConnectivityConnectivityConstraint. + :rtype: List[str] + """ + return self._connection_inclusion + + @connection_inclusion.setter + def connection_inclusion(self, connection_inclusion: List[str]): + """Sets the connection_inclusion of this TapiConnectivityConnectivityConstraint. + + A ConnectivityService may use one or more existing Connections. A common traditional strategy is to set up “stranded” connectivity in the core of the network as “express channels” (this is essentially a serial compound link, but can be treated as simple connections) A connection inclusion capability allows for adoption of a discovered Connections. A ConnectivityService is requested with a connection inclusion constraint that identifies a connection (or chain of connections) that is bounded by CEPs that each belong to a NEP that references a SIP that is referenced by a CSEP of the ConnectivityService such that all CSEPs are satisfied by CEPs of the existing Connection. will allow discovered Connections with no stated intent to be associated with an intent via the ConnectivityService. # noqa: E501 + + :param connection_inclusion: The connection_inclusion of this TapiConnectivityConnectivityConstraint. + :type connection_inclusion: List[str] + """ + + self._connection_inclusion = connection_inclusion + + @property + def service_level(self) -> str: + """Gets the service_level of this TapiConnectivityConnectivityConstraint. + + An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability # noqa: E501 + + :return: The service_level of this TapiConnectivityConnectivityConstraint. + :rtype: str + """ + return self._service_level + + @service_level.setter + def service_level(self, service_level: str): + """Sets the service_level of this TapiConnectivityConnectivityConstraint. + + An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability # noqa: E501 + + :param service_level: The service_level of this TapiConnectivityConnectivityConstraint. + :type service_level: str + """ + + self._service_level = service_level + + @property + def service_type(self) -> TapiConnectivityServiceType: + """Gets the service_type of this TapiConnectivityConnectivityConstraint. + + + :return: The service_type of this TapiConnectivityConnectivityConstraint. + :rtype: TapiConnectivityServiceType + """ + return self._service_type + + @service_type.setter + def service_type(self, service_type: TapiConnectivityServiceType): + """Sets the service_type of this TapiConnectivityConnectivityConstraint. + + + :param service_type: The service_type of this TapiConnectivityConnectivityConstraint. + :type service_type: TapiConnectivityServiceType + """ + + self._service_type = service_type + + @property + def connection_exclusion(self) -> List[str]: + """Gets the connection_exclusion of this TapiConnectivityConnectivityConstraint. + + none # noqa: E501 + + :return: The connection_exclusion of this TapiConnectivityConnectivityConstraint. + :rtype: List[str] + """ + return self._connection_exclusion + + @connection_exclusion.setter + def connection_exclusion(self, connection_exclusion: List[str]): + """Sets the connection_exclusion of this TapiConnectivityConnectivityConstraint. + + none # noqa: E501 + + :param connection_exclusion: The connection_exclusion of this TapiConnectivityConnectivityConstraint. + :type connection_exclusion: List[str] + """ + + self._connection_exclusion = connection_exclusion + + @property + def coroute_inclusion(self) -> TapiConnectivityConnectivityServiceRef: + """Gets the coroute_inclusion of this TapiConnectivityConnectivityConstraint. + + + :return: The coroute_inclusion of this TapiConnectivityConnectivityConstraint. + :rtype: TapiConnectivityConnectivityServiceRef + """ + return self._coroute_inclusion + + @coroute_inclusion.setter + def coroute_inclusion(self, coroute_inclusion: TapiConnectivityConnectivityServiceRef): + """Sets the coroute_inclusion of this TapiConnectivityConnectivityConstraint. + + + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityConstraint. + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + """ + + self._coroute_inclusion = coroute_inclusion diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context.py new file mode 100644 index 0000000000000000000000000000000000000000..2d2bc5119df6540d5264a956465e442669e1a5d2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection import TapiConnectivityConnection # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_service: List[TapiConnectivityConnectivityService]=None, connection: List[TapiConnectivityConnection]=None): # noqa: E501 + """TapiConnectivityConnectivityContext - a model defined in Swagger + + :param connectivity_service: The connectivity_service of this TapiConnectivityConnectivityContext. # noqa: E501 + :type connectivity_service: List[TapiConnectivityConnectivityService] + :param connection: The connection of this TapiConnectivityConnectivityContext. # noqa: E501 + :type connection: List[TapiConnectivityConnection] + """ + self.swagger_types = { + 'connectivity_service': List[TapiConnectivityConnectivityService], + 'connection': List[TapiConnectivityConnection] + } + + self.attribute_map = { + 'connectivity_service': 'connectivity-service', + 'connection': 'connection' + } + self._connectivity_service = connectivity_service + self._connection = connection + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityContext of this TapiConnectivityConnectivityContext. # noqa: E501 + :rtype: TapiConnectivityConnectivityContext + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_service(self) -> List[TapiConnectivityConnectivityService]: + """Gets the connectivity_service of this TapiConnectivityConnectivityContext. + + none # noqa: E501 + + :return: The connectivity_service of this TapiConnectivityConnectivityContext. + :rtype: List[TapiConnectivityConnectivityService] + """ + return self._connectivity_service + + @connectivity_service.setter + def connectivity_service(self, connectivity_service: List[TapiConnectivityConnectivityService]): + """Sets the connectivity_service of this TapiConnectivityConnectivityContext. + + none # noqa: E501 + + :param connectivity_service: The connectivity_service of this TapiConnectivityConnectivityContext. + :type connectivity_service: List[TapiConnectivityConnectivityService] + """ + + self._connectivity_service = connectivity_service + + @property + def connection(self) -> List[TapiConnectivityConnection]: + """Gets the connection of this TapiConnectivityConnectivityContext. + + none # noqa: E501 + + :return: The connection of this TapiConnectivityConnectivityContext. + :rtype: List[TapiConnectivityConnection] + """ + return self._connection + + @connection.setter + def connection(self, connection: List[TapiConnectivityConnection]): + """Sets the connection of this TapiConnectivityConnectivityContext. + + none # noqa: E501 + + :param connection: The connection of this TapiConnectivityConnectivityContext. + :type connection: List[TapiConnectivityConnection] + """ + + self._connection = connection diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..f13e4ceddaa31a405eaa0e0b4e1d028bf0d7166a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_context_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityContextWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_connectivityconnectivity_context: TapiConnectivityConnectivityContext=None): # noqa: E501 + """TapiConnectivityConnectivityContextWrapper - a model defined in Swagger + + :param tapi_connectivityconnectivity_context: The tapi_connectivityconnectivity_context of this TapiConnectivityConnectivityContextWrapper. # noqa: E501 + :type tapi_connectivityconnectivity_context: TapiConnectivityConnectivityContext + """ + self.swagger_types = { + 'tapi_connectivityconnectivity_context': TapiConnectivityConnectivityContext + } + + self.attribute_map = { + 'tapi_connectivityconnectivity_context': 'tapi-connectivity:connectivity-context' + } + self._tapi_connectivityconnectivity_context = tapi_connectivityconnectivity_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityContextWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityContextWrapper of this TapiConnectivityConnectivityContextWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectivityContextWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_connectivityconnectivity_context(self) -> TapiConnectivityConnectivityContext: + """Gets the tapi_connectivityconnectivity_context of this TapiConnectivityConnectivityContextWrapper. + + + :return: The tapi_connectivityconnectivity_context of this TapiConnectivityConnectivityContextWrapper. + :rtype: TapiConnectivityConnectivityContext + """ + return self._tapi_connectivityconnectivity_context + + @tapi_connectivityconnectivity_context.setter + def tapi_connectivityconnectivity_context(self, tapi_connectivityconnectivity_context: TapiConnectivityConnectivityContext): + """Sets the tapi_connectivityconnectivity_context of this TapiConnectivityConnectivityContextWrapper. + + + :param tapi_connectivityconnectivity_context: The tapi_connectivityconnectivity_context of this TapiConnectivityConnectivityContextWrapper. + :type tapi_connectivityconnectivity_context: TapiConnectivityConnectivityContext + """ + + self._tapi_connectivityconnectivity_context = tapi_connectivityconnectivity_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service.py new file mode 100644 index 0000000000000000000000000000000000000000..7d913435c2bd40b8bf5fbf9e652c991cd5f8ee4f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service.py @@ -0,0 +1,1343 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_time_range import TapiCommonTimeRange # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_constraint import TapiConnectivityConnectivityConstraint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point import TapiConnectivityConnectivityServiceEndPoint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_ref import TapiConnectivityConnectivityServiceRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_coordinate_type import TapiConnectivityCoordinateType # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_resilience_constraint import TapiConnectivityResilienceConstraint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_reversion_mode import TapiConnectivityReversionMode # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_service_type import TapiConnectivityServiceType # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_diversity_policy import TapiPathComputationDiversityPolicy # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_route_objective_function import TapiPathComputationRouteObjectiveFunction # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_value_or_priority import TapiPathComputationValueOrPriority # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, service_layer: TapiCommonLayerProtocolName=None, schedule: TapiCommonTimeRange=None, connectivity_direction: TapiCommonForwardingDirection=None, requested_capacity: TapiCommonCapacity=None, diversity_exclusion: List[TapiConnectivityConnectivityServiceRef]=None, connection_inclusion: List[str]=None, service_level: str=None, service_type: TapiConnectivityServiceType=None, connection_exclusion: List[str]=None, coroute_inclusion: TapiConnectivityConnectivityServiceRef=None, is_lock_out: bool=False, max_switch_times: int=None, restoration_coordinate_type: TapiConnectivityCoordinateType=None, is_coordinated_switching_both_ends: bool=False, hold_off_time: int=None, is_frozen: bool=False, wait_to_revert_time: int=15, resilience_type: TapiTopologyResilienceType=None, preferred_restoration_layer: List[TapiCommonLayerProtocolName]=None, restore_priority: int=None, reversion_mode: TapiConnectivityReversionMode=None, is_exclusive: bool=True, max_allowed_cost: TapiPathComputationValueOrPriority=None, diversity_policy: TapiPathComputationDiversityPolicy=None, route_objective_function: TapiPathComputationRouteObjectiveFunction=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, max_allowed_hops: TapiPathComputationValueOrPriority=None, max_allowed_delay: TapiPathComputationValueOrPriority=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic]=None, route_direction: TapiCommonForwardingDirection=None, include_node: List[str]=None, exclude_link: List[str]=None, avoid_topology: List[str]=None, exclude_path: List[str]=None, include_link: List[str]=None, preferred_transport_layer: List[TapiCommonLayerProtocolName]=None, exclude_node: List[str]=None, include_topology: List[str]=None, include_path: List[str]=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, end_point: List[TapiConnectivityConnectivityServiceEndPoint]=None, connection: List[TapiConnectivityConnectionRef]=None): # noqa: E501 + """TapiConnectivityConnectivityService - a model defined in Swagger + + :param name: The name of this TapiConnectivityConnectivityService. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiConnectivityConnectivityService. # noqa: E501 + :type uuid: str + :param service_layer: The service_layer of this TapiConnectivityConnectivityService. # noqa: E501 + :type service_layer: TapiCommonLayerProtocolName + :param schedule: The schedule of this TapiConnectivityConnectivityService. # noqa: E501 + :type schedule: TapiCommonTimeRange + :param connectivity_direction: The connectivity_direction of this TapiConnectivityConnectivityService. # noqa: E501 + :type connectivity_direction: TapiCommonForwardingDirection + :param requested_capacity: The requested_capacity of this TapiConnectivityConnectivityService. # noqa: E501 + :type requested_capacity: TapiCommonCapacity + :param diversity_exclusion: The diversity_exclusion of this TapiConnectivityConnectivityService. # noqa: E501 + :type diversity_exclusion: List[TapiConnectivityConnectivityServiceRef] + :param connection_inclusion: The connection_inclusion of this TapiConnectivityConnectivityService. # noqa: E501 + :type connection_inclusion: List[str] + :param service_level: The service_level of this TapiConnectivityConnectivityService. # noqa: E501 + :type service_level: str + :param service_type: The service_type of this TapiConnectivityConnectivityService. # noqa: E501 + :type service_type: TapiConnectivityServiceType + :param connection_exclusion: The connection_exclusion of this TapiConnectivityConnectivityService. # noqa: E501 + :type connection_exclusion: List[str] + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityService. # noqa: E501 + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + :param is_lock_out: The is_lock_out of this TapiConnectivityConnectivityService. # noqa: E501 + :type is_lock_out: bool + :param max_switch_times: The max_switch_times of this TapiConnectivityConnectivityService. # noqa: E501 + :type max_switch_times: int + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivityConnectivityService. # noqa: E501 + :type restoration_coordinate_type: TapiConnectivityCoordinateType + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivityConnectivityService. # noqa: E501 + :type is_coordinated_switching_both_ends: bool + :param hold_off_time: The hold_off_time of this TapiConnectivityConnectivityService. # noqa: E501 + :type hold_off_time: int + :param is_frozen: The is_frozen of this TapiConnectivityConnectivityService. # noqa: E501 + :type is_frozen: bool + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivityConnectivityService. # noqa: E501 + :type wait_to_revert_time: int + :param resilience_type: The resilience_type of this TapiConnectivityConnectivityService. # noqa: E501 + :type resilience_type: TapiTopologyResilienceType + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivityConnectivityService. # noqa: E501 + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + :param restore_priority: The restore_priority of this TapiConnectivityConnectivityService. # noqa: E501 + :type restore_priority: int + :param reversion_mode: The reversion_mode of this TapiConnectivityConnectivityService. # noqa: E501 + :type reversion_mode: TapiConnectivityReversionMode + :param is_exclusive: The is_exclusive of this TapiConnectivityConnectivityService. # noqa: E501 + :type is_exclusive: bool + :param max_allowed_cost: The max_allowed_cost of this TapiConnectivityConnectivityService. # noqa: E501 + :type max_allowed_cost: TapiPathComputationValueOrPriority + :param diversity_policy: The diversity_policy of this TapiConnectivityConnectivityService. # noqa: E501 + :type diversity_policy: TapiPathComputationDiversityPolicy + :param route_objective_function: The route_objective_function of this TapiConnectivityConnectivityService. # noqa: E501 + :type route_objective_function: TapiPathComputationRouteObjectiveFunction + :param cost_characteristic: The cost_characteristic of this TapiConnectivityConnectivityService. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param max_allowed_hops: The max_allowed_hops of this TapiConnectivityConnectivityService. # noqa: E501 + :type max_allowed_hops: TapiPathComputationValueOrPriority + :param max_allowed_delay: The max_allowed_delay of this TapiConnectivityConnectivityService. # noqa: E501 + :type max_allowed_delay: TapiPathComputationValueOrPriority + :param latency_characteristic: The latency_characteristic of this TapiConnectivityConnectivityService. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiConnectivityConnectivityService. # noqa: E501 + :type risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic] + :param route_direction: The route_direction of this TapiConnectivityConnectivityService. # noqa: E501 + :type route_direction: TapiCommonForwardingDirection + :param include_node: The include_node of this TapiConnectivityConnectivityService. # noqa: E501 + :type include_node: List[str] + :param exclude_link: The exclude_link of this TapiConnectivityConnectivityService. # noqa: E501 + :type exclude_link: List[str] + :param avoid_topology: The avoid_topology of this TapiConnectivityConnectivityService. # noqa: E501 + :type avoid_topology: List[str] + :param exclude_path: The exclude_path of this TapiConnectivityConnectivityService. # noqa: E501 + :type exclude_path: List[str] + :param include_link: The include_link of this TapiConnectivityConnectivityService. # noqa: E501 + :type include_link: List[str] + :param preferred_transport_layer: The preferred_transport_layer of this TapiConnectivityConnectivityService. # noqa: E501 + :type preferred_transport_layer: List[TapiCommonLayerProtocolName] + :param exclude_node: The exclude_node of this TapiConnectivityConnectivityService. # noqa: E501 + :type exclude_node: List[str] + :param include_topology: The include_topology of this TapiConnectivityConnectivityService. # noqa: E501 + :type include_topology: List[str] + :param include_path: The include_path of this TapiConnectivityConnectivityService. # noqa: E501 + :type include_path: List[str] + :param operational_state: The operational_state of this TapiConnectivityConnectivityService. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectivityService. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiConnectivityConnectivityService. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param end_point: The end_point of this TapiConnectivityConnectivityService. # noqa: E501 + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + :param connection: The connection of this TapiConnectivityConnectivityService. # noqa: E501 + :type connection: List[TapiConnectivityConnectionRef] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'service_layer': TapiCommonLayerProtocolName, + 'schedule': TapiCommonTimeRange, + 'connectivity_direction': TapiCommonForwardingDirection, + 'requested_capacity': TapiCommonCapacity, + 'diversity_exclusion': List[TapiConnectivityConnectivityServiceRef], + 'connection_inclusion': List[str], + 'service_level': str, + 'service_type': TapiConnectivityServiceType, + 'connection_exclusion': List[str], + 'coroute_inclusion': TapiConnectivityConnectivityServiceRef, + 'is_lock_out': bool, + 'max_switch_times': int, + 'restoration_coordinate_type': TapiConnectivityCoordinateType, + 'is_coordinated_switching_both_ends': bool, + 'hold_off_time': int, + 'is_frozen': bool, + 'wait_to_revert_time': int, + 'resilience_type': TapiTopologyResilienceType, + 'preferred_restoration_layer': List[TapiCommonLayerProtocolName], + 'restore_priority': int, + 'reversion_mode': TapiConnectivityReversionMode, + 'is_exclusive': bool, + 'max_allowed_cost': TapiPathComputationValueOrPriority, + 'diversity_policy': TapiPathComputationDiversityPolicy, + 'route_objective_function': TapiPathComputationRouteObjectiveFunction, + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'max_allowed_hops': TapiPathComputationValueOrPriority, + 'max_allowed_delay': TapiPathComputationValueOrPriority, + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'risk_diversity_characteristic': List[TapiTopologyRiskCharacteristic], + 'route_direction': TapiCommonForwardingDirection, + 'include_node': List[str], + 'exclude_link': List[str], + 'avoid_topology': List[str], + 'exclude_path': List[str], + 'include_link': List[str], + 'preferred_transport_layer': List[TapiCommonLayerProtocolName], + 'exclude_node': List[str], + 'include_topology': List[str], + 'include_path': List[str], + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'end_point': List[TapiConnectivityConnectivityServiceEndPoint], + 'connection': List[TapiConnectivityConnectionRef] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'service_layer': 'service-layer', + 'schedule': 'schedule', + 'connectivity_direction': 'connectivity-direction', + 'requested_capacity': 'requested-capacity', + 'diversity_exclusion': 'diversity-exclusion', + 'connection_inclusion': 'connection-inclusion', + 'service_level': 'service-level', + 'service_type': 'service-type', + 'connection_exclusion': 'connection-exclusion', + 'coroute_inclusion': 'coroute-inclusion', + 'is_lock_out': 'is-lock-out', + 'max_switch_times': 'max-switch-times', + 'restoration_coordinate_type': 'restoration-coordinate-type', + 'is_coordinated_switching_both_ends': 'is-coordinated-switching-both-ends', + 'hold_off_time': 'hold-off-time', + 'is_frozen': 'is-frozen', + 'wait_to_revert_time': 'wait-to-revert-time', + 'resilience_type': 'resilience-type', + 'preferred_restoration_layer': 'preferred-restoration-layer', + 'restore_priority': 'restore-priority', + 'reversion_mode': 'reversion-mode', + 'is_exclusive': 'is-exclusive', + 'max_allowed_cost': 'max-allowed-cost', + 'diversity_policy': 'diversity-policy', + 'route_objective_function': 'route-objective-function', + 'cost_characteristic': 'cost-characteristic', + 'max_allowed_hops': 'max-allowed-hops', + 'max_allowed_delay': 'max-allowed-delay', + 'latency_characteristic': 'latency-characteristic', + 'risk_diversity_characteristic': 'risk-diversity-characteristic', + 'route_direction': 'route-direction', + 'include_node': 'include-node', + 'exclude_link': 'exclude-link', + 'avoid_topology': 'avoid-topology', + 'exclude_path': 'exclude-path', + 'include_link': 'include-link', + 'preferred_transport_layer': 'preferred-transport-layer', + 'exclude_node': 'exclude-node', + 'include_topology': 'include-topology', + 'include_path': 'include-path', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'end_point': 'end-point', + 'connection': 'connection' + } + self._name = name + self._uuid = uuid + self._service_layer = service_layer + self._schedule = schedule + self._connectivity_direction = connectivity_direction + self._requested_capacity = requested_capacity + self._diversity_exclusion = diversity_exclusion + self._connection_inclusion = connection_inclusion + self._service_level = service_level + self._service_type = service_type + self._connection_exclusion = connection_exclusion + self._coroute_inclusion = coroute_inclusion + self._is_lock_out = is_lock_out + self._max_switch_times = max_switch_times + self._restoration_coordinate_type = restoration_coordinate_type + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + self._hold_off_time = hold_off_time + self._is_frozen = is_frozen + self._wait_to_revert_time = wait_to_revert_time + self._resilience_type = resilience_type + self._preferred_restoration_layer = preferred_restoration_layer + self._restore_priority = restore_priority + self._reversion_mode = reversion_mode + self._is_exclusive = is_exclusive + self._max_allowed_cost = max_allowed_cost + self._diversity_policy = diversity_policy + self._route_objective_function = route_objective_function + self._cost_characteristic = cost_characteristic + self._max_allowed_hops = max_allowed_hops + self._max_allowed_delay = max_allowed_delay + self._latency_characteristic = latency_characteristic + self._risk_diversity_characteristic = risk_diversity_characteristic + self._route_direction = route_direction + self._include_node = include_node + self._exclude_link = exclude_link + self._avoid_topology = avoid_topology + self._exclude_path = exclude_path + self._include_link = include_link + self._preferred_transport_layer = preferred_transport_layer + self._exclude_node = exclude_node + self._include_topology = include_topology + self._include_path = include_path + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._end_point = end_point + self._connection = connection + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityService of this TapiConnectivityConnectivityService. # noqa: E501 + :rtype: TapiConnectivityConnectivityService + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityConnectivityService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityConnectivityService. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityConnectivityService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityConnectivityService. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiConnectivityConnectivityService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiConnectivityConnectivityService. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiConnectivityConnectivityService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiConnectivityConnectivityService. + :type uuid: str + """ + + self._uuid = uuid + + @property + def service_layer(self) -> TapiCommonLayerProtocolName: + """Gets the service_layer of this TapiConnectivityConnectivityService. + + + :return: The service_layer of this TapiConnectivityConnectivityService. + :rtype: TapiCommonLayerProtocolName + """ + return self._service_layer + + @service_layer.setter + def service_layer(self, service_layer: TapiCommonLayerProtocolName): + """Sets the service_layer of this TapiConnectivityConnectivityService. + + + :param service_layer: The service_layer of this TapiConnectivityConnectivityService. + :type service_layer: TapiCommonLayerProtocolName + """ + + self._service_layer = service_layer + + @property + def schedule(self) -> TapiCommonTimeRange: + """Gets the schedule of this TapiConnectivityConnectivityService. + + + :return: The schedule of this TapiConnectivityConnectivityService. + :rtype: TapiCommonTimeRange + """ + return self._schedule + + @schedule.setter + def schedule(self, schedule: TapiCommonTimeRange): + """Sets the schedule of this TapiConnectivityConnectivityService. + + + :param schedule: The schedule of this TapiConnectivityConnectivityService. + :type schedule: TapiCommonTimeRange + """ + + self._schedule = schedule + + @property + def connectivity_direction(self) -> TapiCommonForwardingDirection: + """Gets the connectivity_direction of this TapiConnectivityConnectivityService. + + + :return: The connectivity_direction of this TapiConnectivityConnectivityService. + :rtype: TapiCommonForwardingDirection + """ + return self._connectivity_direction + + @connectivity_direction.setter + def connectivity_direction(self, connectivity_direction: TapiCommonForwardingDirection): + """Sets the connectivity_direction of this TapiConnectivityConnectivityService. + + + :param connectivity_direction: The connectivity_direction of this TapiConnectivityConnectivityService. + :type connectivity_direction: TapiCommonForwardingDirection + """ + + self._connectivity_direction = connectivity_direction + + @property + def requested_capacity(self) -> TapiCommonCapacity: + """Gets the requested_capacity of this TapiConnectivityConnectivityService. + + + :return: The requested_capacity of this TapiConnectivityConnectivityService. + :rtype: TapiCommonCapacity + """ + return self._requested_capacity + + @requested_capacity.setter + def requested_capacity(self, requested_capacity: TapiCommonCapacity): + """Sets the requested_capacity of this TapiConnectivityConnectivityService. + + + :param requested_capacity: The requested_capacity of this TapiConnectivityConnectivityService. + :type requested_capacity: TapiCommonCapacity + """ + + self._requested_capacity = requested_capacity + + @property + def diversity_exclusion(self) -> List[TapiConnectivityConnectivityServiceRef]: + """Gets the diversity_exclusion of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The diversity_exclusion of this TapiConnectivityConnectivityService. + :rtype: List[TapiConnectivityConnectivityServiceRef] + """ + return self._diversity_exclusion + + @diversity_exclusion.setter + def diversity_exclusion(self, diversity_exclusion: List[TapiConnectivityConnectivityServiceRef]): + """Sets the diversity_exclusion of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param diversity_exclusion: The diversity_exclusion of this TapiConnectivityConnectivityService. + :type diversity_exclusion: List[TapiConnectivityConnectivityServiceRef] + """ + + self._diversity_exclusion = diversity_exclusion + + @property + def connection_inclusion(self) -> List[str]: + """Gets the connection_inclusion of this TapiConnectivityConnectivityService. + + A ConnectivityService may use one or more existing Connections. A common traditional strategy is to set up “stranded” connectivity in the core of the network as “express channels” (this is essentially a serial compound link, but can be treated as simple connections) A connection inclusion capability allows for adoption of a discovered Connections. A ConnectivityService is requested with a connection inclusion constraint that identifies a connection (or chain of connections) that is bounded by CEPs that each belong to a NEP that references a SIP that is referenced by a CSEP of the ConnectivityService such that all CSEPs are satisfied by CEPs of the existing Connection. will allow discovered Connections with no stated intent to be associated with an intent via the ConnectivityService. # noqa: E501 + + :return: The connection_inclusion of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._connection_inclusion + + @connection_inclusion.setter + def connection_inclusion(self, connection_inclusion: List[str]): + """Sets the connection_inclusion of this TapiConnectivityConnectivityService. + + A ConnectivityService may use one or more existing Connections. A common traditional strategy is to set up “stranded” connectivity in the core of the network as “express channels” (this is essentially a serial compound link, but can be treated as simple connections) A connection inclusion capability allows for adoption of a discovered Connections. A ConnectivityService is requested with a connection inclusion constraint that identifies a connection (or chain of connections) that is bounded by CEPs that each belong to a NEP that references a SIP that is referenced by a CSEP of the ConnectivityService such that all CSEPs are satisfied by CEPs of the existing Connection. will allow discovered Connections with no stated intent to be associated with an intent via the ConnectivityService. # noqa: E501 + + :param connection_inclusion: The connection_inclusion of this TapiConnectivityConnectivityService. + :type connection_inclusion: List[str] + """ + + self._connection_inclusion = connection_inclusion + + @property + def service_level(self) -> str: + """Gets the service_level of this TapiConnectivityConnectivityService. + + An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability # noqa: E501 + + :return: The service_level of this TapiConnectivityConnectivityService. + :rtype: str + """ + return self._service_level + + @service_level.setter + def service_level(self, service_level: str): + """Sets the service_level of this TapiConnectivityConnectivityService. + + An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability # noqa: E501 + + :param service_level: The service_level of this TapiConnectivityConnectivityService. + :type service_level: str + """ + + self._service_level = service_level + + @property + def service_type(self) -> TapiConnectivityServiceType: + """Gets the service_type of this TapiConnectivityConnectivityService. + + + :return: The service_type of this TapiConnectivityConnectivityService. + :rtype: TapiConnectivityServiceType + """ + return self._service_type + + @service_type.setter + def service_type(self, service_type: TapiConnectivityServiceType): + """Sets the service_type of this TapiConnectivityConnectivityService. + + + :param service_type: The service_type of this TapiConnectivityConnectivityService. + :type service_type: TapiConnectivityServiceType + """ + + self._service_type = service_type + + @property + def connection_exclusion(self) -> List[str]: + """Gets the connection_exclusion of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The connection_exclusion of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._connection_exclusion + + @connection_exclusion.setter + def connection_exclusion(self, connection_exclusion: List[str]): + """Sets the connection_exclusion of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param connection_exclusion: The connection_exclusion of this TapiConnectivityConnectivityService. + :type connection_exclusion: List[str] + """ + + self._connection_exclusion = connection_exclusion + + @property + def coroute_inclusion(self) -> TapiConnectivityConnectivityServiceRef: + """Gets the coroute_inclusion of this TapiConnectivityConnectivityService. + + + :return: The coroute_inclusion of this TapiConnectivityConnectivityService. + :rtype: TapiConnectivityConnectivityServiceRef + """ + return self._coroute_inclusion + + @coroute_inclusion.setter + def coroute_inclusion(self, coroute_inclusion: TapiConnectivityConnectivityServiceRef): + """Sets the coroute_inclusion of this TapiConnectivityConnectivityService. + + + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityService. + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + """ + + self._coroute_inclusion = coroute_inclusion + + @property + def is_lock_out(self) -> bool: + """Gets the is_lock_out of this TapiConnectivityConnectivityService. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :return: The is_lock_out of this TapiConnectivityConnectivityService. + :rtype: bool + """ + return self._is_lock_out + + @is_lock_out.setter + def is_lock_out(self, is_lock_out: bool): + """Sets the is_lock_out of this TapiConnectivityConnectivityService. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :param is_lock_out: The is_lock_out of this TapiConnectivityConnectivityService. + :type is_lock_out: bool + """ + + self._is_lock_out = is_lock_out + + @property + def max_switch_times(self) -> int: + """Gets the max_switch_times of this TapiConnectivityConnectivityService. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :return: The max_switch_times of this TapiConnectivityConnectivityService. + :rtype: int + """ + return self._max_switch_times + + @max_switch_times.setter + def max_switch_times(self, max_switch_times: int): + """Sets the max_switch_times of this TapiConnectivityConnectivityService. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :param max_switch_times: The max_switch_times of this TapiConnectivityConnectivityService. + :type max_switch_times: int + """ + + self._max_switch_times = max_switch_times + + @property + def restoration_coordinate_type(self) -> TapiConnectivityCoordinateType: + """Gets the restoration_coordinate_type of this TapiConnectivityConnectivityService. + + + :return: The restoration_coordinate_type of this TapiConnectivityConnectivityService. + :rtype: TapiConnectivityCoordinateType + """ + return self._restoration_coordinate_type + + @restoration_coordinate_type.setter + def restoration_coordinate_type(self, restoration_coordinate_type: TapiConnectivityCoordinateType): + """Sets the restoration_coordinate_type of this TapiConnectivityConnectivityService. + + + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivityConnectivityService. + :type restoration_coordinate_type: TapiConnectivityCoordinateType + """ + + self._restoration_coordinate_type = restoration_coordinate_type + + @property + def is_coordinated_switching_both_ends(self) -> bool: + """Gets the is_coordinated_switching_both_ends of this TapiConnectivityConnectivityService. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :return: The is_coordinated_switching_both_ends of this TapiConnectivityConnectivityService. + :rtype: bool + """ + return self._is_coordinated_switching_both_ends + + @is_coordinated_switching_both_ends.setter + def is_coordinated_switching_both_ends(self, is_coordinated_switching_both_ends: bool): + """Sets the is_coordinated_switching_both_ends of this TapiConnectivityConnectivityService. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivityConnectivityService. + :type is_coordinated_switching_both_ends: bool + """ + + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + + @property + def hold_off_time(self) -> int: + """Gets the hold_off_time of this TapiConnectivityConnectivityService. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :return: The hold_off_time of this TapiConnectivityConnectivityService. + :rtype: int + """ + return self._hold_off_time + + @hold_off_time.setter + def hold_off_time(self, hold_off_time: int): + """Sets the hold_off_time of this TapiConnectivityConnectivityService. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :param hold_off_time: The hold_off_time of this TapiConnectivityConnectivityService. + :type hold_off_time: int + """ + + self._hold_off_time = hold_off_time + + @property + def is_frozen(self) -> bool: + """Gets the is_frozen of this TapiConnectivityConnectivityService. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :return: The is_frozen of this TapiConnectivityConnectivityService. + :rtype: bool + """ + return self._is_frozen + + @is_frozen.setter + def is_frozen(self, is_frozen: bool): + """Sets the is_frozen of this TapiConnectivityConnectivityService. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :param is_frozen: The is_frozen of this TapiConnectivityConnectivityService. + :type is_frozen: bool + """ + + self._is_frozen = is_frozen + + @property + def wait_to_revert_time(self) -> int: + """Gets the wait_to_revert_time of this TapiConnectivityConnectivityService. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :return: The wait_to_revert_time of this TapiConnectivityConnectivityService. + :rtype: int + """ + return self._wait_to_revert_time + + @wait_to_revert_time.setter + def wait_to_revert_time(self, wait_to_revert_time: int): + """Sets the wait_to_revert_time of this TapiConnectivityConnectivityService. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivityConnectivityService. + :type wait_to_revert_time: int + """ + + self._wait_to_revert_time = wait_to_revert_time + + @property + def resilience_type(self) -> TapiTopologyResilienceType: + """Gets the resilience_type of this TapiConnectivityConnectivityService. + + + :return: The resilience_type of this TapiConnectivityConnectivityService. + :rtype: TapiTopologyResilienceType + """ + return self._resilience_type + + @resilience_type.setter + def resilience_type(self, resilience_type: TapiTopologyResilienceType): + """Sets the resilience_type of this TapiConnectivityConnectivityService. + + + :param resilience_type: The resilience_type of this TapiConnectivityConnectivityService. + :type resilience_type: TapiTopologyResilienceType + """ + + self._resilience_type = resilience_type + + @property + def preferred_restoration_layer(self) -> List[TapiCommonLayerProtocolName]: + """Gets the preferred_restoration_layer of this TapiConnectivityConnectivityService. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :return: The preferred_restoration_layer of this TapiConnectivityConnectivityService. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._preferred_restoration_layer + + @preferred_restoration_layer.setter + def preferred_restoration_layer(self, preferred_restoration_layer: List[TapiCommonLayerProtocolName]): + """Sets the preferred_restoration_layer of this TapiConnectivityConnectivityService. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivityConnectivityService. + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + """ + + self._preferred_restoration_layer = preferred_restoration_layer + + @property + def restore_priority(self) -> int: + """Gets the restore_priority of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The restore_priority of this TapiConnectivityConnectivityService. + :rtype: int + """ + return self._restore_priority + + @restore_priority.setter + def restore_priority(self, restore_priority: int): + """Sets the restore_priority of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param restore_priority: The restore_priority of this TapiConnectivityConnectivityService. + :type restore_priority: int + """ + + self._restore_priority = restore_priority + + @property + def reversion_mode(self) -> TapiConnectivityReversionMode: + """Gets the reversion_mode of this TapiConnectivityConnectivityService. + + + :return: The reversion_mode of this TapiConnectivityConnectivityService. + :rtype: TapiConnectivityReversionMode + """ + return self._reversion_mode + + @reversion_mode.setter + def reversion_mode(self, reversion_mode: TapiConnectivityReversionMode): + """Sets the reversion_mode of this TapiConnectivityConnectivityService. + + + :param reversion_mode: The reversion_mode of this TapiConnectivityConnectivityService. + :type reversion_mode: TapiConnectivityReversionMode + """ + + self._reversion_mode = reversion_mode + + @property + def is_exclusive(self) -> bool: + """Gets the is_exclusive of this TapiConnectivityConnectivityService. + + To distinguish if the resources are to be exclusive to the service # noqa: E501 + + :return: The is_exclusive of this TapiConnectivityConnectivityService. + :rtype: bool + """ + return self._is_exclusive + + @is_exclusive.setter + def is_exclusive(self, is_exclusive: bool): + """Sets the is_exclusive of this TapiConnectivityConnectivityService. + + To distinguish if the resources are to be exclusive to the service # noqa: E501 + + :param is_exclusive: The is_exclusive of this TapiConnectivityConnectivityService. + :type is_exclusive: bool + """ + + self._is_exclusive = is_exclusive + + @property + def max_allowed_cost(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_cost of this TapiConnectivityConnectivityService. + + + :return: The max_allowed_cost of this TapiConnectivityConnectivityService. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_cost + + @max_allowed_cost.setter + def max_allowed_cost(self, max_allowed_cost: TapiPathComputationValueOrPriority): + """Sets the max_allowed_cost of this TapiConnectivityConnectivityService. + + + :param max_allowed_cost: The max_allowed_cost of this TapiConnectivityConnectivityService. + :type max_allowed_cost: TapiPathComputationValueOrPriority + """ + + self._max_allowed_cost = max_allowed_cost + + @property + def diversity_policy(self) -> TapiPathComputationDiversityPolicy: + """Gets the diversity_policy of this TapiConnectivityConnectivityService. + + + :return: The diversity_policy of this TapiConnectivityConnectivityService. + :rtype: TapiPathComputationDiversityPolicy + """ + return self._diversity_policy + + @diversity_policy.setter + def diversity_policy(self, diversity_policy: TapiPathComputationDiversityPolicy): + """Sets the diversity_policy of this TapiConnectivityConnectivityService. + + + :param diversity_policy: The diversity_policy of this TapiConnectivityConnectivityService. + :type diversity_policy: TapiPathComputationDiversityPolicy + """ + + self._diversity_policy = diversity_policy + + @property + def route_objective_function(self) -> TapiPathComputationRouteObjectiveFunction: + """Gets the route_objective_function of this TapiConnectivityConnectivityService. + + + :return: The route_objective_function of this TapiConnectivityConnectivityService. + :rtype: TapiPathComputationRouteObjectiveFunction + """ + return self._route_objective_function + + @route_objective_function.setter + def route_objective_function(self, route_objective_function: TapiPathComputationRouteObjectiveFunction): + """Sets the route_objective_function of this TapiConnectivityConnectivityService. + + + :param route_objective_function: The route_objective_function of this TapiConnectivityConnectivityService. + :type route_objective_function: TapiPathComputationRouteObjectiveFunction + """ + + self._route_objective_function = route_objective_function + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiConnectivityConnectivityService. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiConnectivityConnectivityService. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiConnectivityConnectivityService. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiConnectivityConnectivityService. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def max_allowed_hops(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_hops of this TapiConnectivityConnectivityService. + + + :return: The max_allowed_hops of this TapiConnectivityConnectivityService. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_hops + + @max_allowed_hops.setter + def max_allowed_hops(self, max_allowed_hops: TapiPathComputationValueOrPriority): + """Sets the max_allowed_hops of this TapiConnectivityConnectivityService. + + + :param max_allowed_hops: The max_allowed_hops of this TapiConnectivityConnectivityService. + :type max_allowed_hops: TapiPathComputationValueOrPriority + """ + + self._max_allowed_hops = max_allowed_hops + + @property + def max_allowed_delay(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_delay of this TapiConnectivityConnectivityService. + + + :return: The max_allowed_delay of this TapiConnectivityConnectivityService. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_delay + + @max_allowed_delay.setter + def max_allowed_delay(self, max_allowed_delay: TapiPathComputationValueOrPriority): + """Sets the max_allowed_delay of this TapiConnectivityConnectivityService. + + + :param max_allowed_delay: The max_allowed_delay of this TapiConnectivityConnectivityService. + :type max_allowed_delay: TapiPathComputationValueOrPriority + """ + + self._max_allowed_delay = max_allowed_delay + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiConnectivityConnectivityService. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiConnectivityConnectivityService. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiConnectivityConnectivityService. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiConnectivityConnectivityService. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def risk_diversity_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_diversity_characteristic of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The risk_diversity_characteristic of this TapiConnectivityConnectivityService. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_diversity_characteristic + + @risk_diversity_characteristic.setter + def risk_diversity_characteristic(self, risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_diversity_characteristic of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiConnectivityConnectivityService. + :type risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_diversity_characteristic = risk_diversity_characteristic + + @property + def route_direction(self) -> TapiCommonForwardingDirection: + """Gets the route_direction of this TapiConnectivityConnectivityService. + + + :return: The route_direction of this TapiConnectivityConnectivityService. + :rtype: TapiCommonForwardingDirection + """ + return self._route_direction + + @route_direction.setter + def route_direction(self, route_direction: TapiCommonForwardingDirection): + """Sets the route_direction of this TapiConnectivityConnectivityService. + + + :param route_direction: The route_direction of this TapiConnectivityConnectivityService. + :type route_direction: TapiCommonForwardingDirection + """ + + self._route_direction = route_direction + + @property + def include_node(self) -> List[str]: + """Gets the include_node of this TapiConnectivityConnectivityService. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :return: The include_node of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._include_node + + @include_node.setter + def include_node(self, include_node: List[str]): + """Sets the include_node of this TapiConnectivityConnectivityService. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :param include_node: The include_node of this TapiConnectivityConnectivityService. + :type include_node: List[str] + """ + + self._include_node = include_node + + @property + def exclude_link(self) -> List[str]: + """Gets the exclude_link of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The exclude_link of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._exclude_link + + @exclude_link.setter + def exclude_link(self, exclude_link: List[str]): + """Sets the exclude_link of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param exclude_link: The exclude_link of this TapiConnectivityConnectivityService. + :type exclude_link: List[str] + """ + + self._exclude_link = exclude_link + + @property + def avoid_topology(self) -> List[str]: + """Gets the avoid_topology of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The avoid_topology of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._avoid_topology + + @avoid_topology.setter + def avoid_topology(self, avoid_topology: List[str]): + """Sets the avoid_topology of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param avoid_topology: The avoid_topology of this TapiConnectivityConnectivityService. + :type avoid_topology: List[str] + """ + + self._avoid_topology = avoid_topology + + @property + def exclude_path(self) -> List[str]: + """Gets the exclude_path of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The exclude_path of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._exclude_path + + @exclude_path.setter + def exclude_path(self, exclude_path: List[str]): + """Sets the exclude_path of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param exclude_path: The exclude_path of this TapiConnectivityConnectivityService. + :type exclude_path: List[str] + """ + + self._exclude_path = exclude_path + + @property + def include_link(self) -> List[str]: + """Gets the include_link of this TapiConnectivityConnectivityService. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :return: The include_link of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._include_link + + @include_link.setter + def include_link(self, include_link: List[str]): + """Sets the include_link of this TapiConnectivityConnectivityService. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :param include_link: The include_link of this TapiConnectivityConnectivityService. + :type include_link: List[str] + """ + + self._include_link = include_link + + @property + def preferred_transport_layer(self) -> List[TapiCommonLayerProtocolName]: + """Gets the preferred_transport_layer of this TapiConnectivityConnectivityService. + + soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers # noqa: E501 + + :return: The preferred_transport_layer of this TapiConnectivityConnectivityService. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._preferred_transport_layer + + @preferred_transport_layer.setter + def preferred_transport_layer(self, preferred_transport_layer: List[TapiCommonLayerProtocolName]): + """Sets the preferred_transport_layer of this TapiConnectivityConnectivityService. + + soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers # noqa: E501 + + :param preferred_transport_layer: The preferred_transport_layer of this TapiConnectivityConnectivityService. + :type preferred_transport_layer: List[TapiCommonLayerProtocolName] + """ + + self._preferred_transport_layer = preferred_transport_layer + + @property + def exclude_node(self) -> List[str]: + """Gets the exclude_node of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The exclude_node of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._exclude_node + + @exclude_node.setter + def exclude_node(self, exclude_node: List[str]): + """Sets the exclude_node of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param exclude_node: The exclude_node of this TapiConnectivityConnectivityService. + :type exclude_node: List[str] + """ + + self._exclude_node = exclude_node + + @property + def include_topology(self) -> List[str]: + """Gets the include_topology of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The include_topology of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._include_topology + + @include_topology.setter + def include_topology(self, include_topology: List[str]): + """Sets the include_topology of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param include_topology: The include_topology of this TapiConnectivityConnectivityService. + :type include_topology: List[str] + """ + + self._include_topology = include_topology + + @property + def include_path(self) -> List[str]: + """Gets the include_path of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The include_path of this TapiConnectivityConnectivityService. + :rtype: List[str] + """ + return self._include_path + + @include_path.setter + def include_path(self, include_path: List[str]): + """Sets the include_path of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param include_path: The include_path of this TapiConnectivityConnectivityService. + :type include_path: List[str] + """ + + self._include_path = include_path + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiConnectivityConnectivityService. + + + :return: The operational_state of this TapiConnectivityConnectivityService. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiConnectivityConnectivityService. + + + :param operational_state: The operational_state of this TapiConnectivityConnectivityService. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiConnectivityConnectivityService. + + + :return: The lifecycle_state of this TapiConnectivityConnectivityService. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiConnectivityConnectivityService. + + + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectivityService. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiConnectivityConnectivityService. + + + :return: The administrative_state of this TapiConnectivityConnectivityService. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiConnectivityConnectivityService. + + + :param administrative_state: The administrative_state of this TapiConnectivityConnectivityService. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def end_point(self) -> List[TapiConnectivityConnectivityServiceEndPoint]: + """Gets the end_point of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The end_point of this TapiConnectivityConnectivityService. + :rtype: List[TapiConnectivityConnectivityServiceEndPoint] + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: List[TapiConnectivityConnectivityServiceEndPoint]): + """Sets the end_point of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param end_point: The end_point of this TapiConnectivityConnectivityService. + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + """ + + self._end_point = end_point + + @property + def connection(self) -> List[TapiConnectivityConnectionRef]: + """Gets the connection of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :return: The connection of this TapiConnectivityConnectivityService. + :rtype: List[TapiConnectivityConnectionRef] + """ + return self._connection + + @connection.setter + def connection(self, connection: List[TapiConnectivityConnectionRef]): + """Sets the connection of this TapiConnectivityConnectivityService. + + none # noqa: E501 + + :param connection: The connection of this TapiConnectivityConnectivityService. + :type connection: List[TapiConnectivityConnectionRef] + """ + + self._connection = connection diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point.py new file mode 100644 index 0000000000000000000000000000000000000000..84df8f687885c89db080047a8098929c2dcb8662 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point.py @@ -0,0 +1,474 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole # noqa: F401,E501 +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref import TapiConnectivityConnectivityServiceEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_protection_role import TapiConnectivityProtectionRole # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceEndPoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, protection_role: TapiConnectivityProtectionRole=None, role: TapiCommonPortRole=None, service_interface_point: TapiCommonServiceInterfacePointRef=None, peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef=None, layer_protocol_name: TapiCommonLayerProtocolName=None, layer_protocol_qualifier: str=None, connection_end_point: List[TapiConnectivityConnectionEndPointRef]=None, server_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef=None, protecting_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef=None, direction: TapiCommonPortDirection=None, capacity: TapiCommonCapacity=None): # noqa: E501 + """TapiConnectivityConnectivityServiceEndPoint - a model defined in Swagger + + :param name: The name of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type local_id: str + :param operational_state: The operational_state of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param protection_role: The protection_role of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type protection_role: TapiConnectivityProtectionRole + :param role: The role of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type role: TapiCommonPortRole + :param service_interface_point: The service_interface_point of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type service_interface_point: TapiCommonServiceInterfacePointRef + :param peer_fwd_connectivity_service_end_point: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type layer_protocol_qualifier: str + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + :param server_connectivity_service_end_point: The server_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type server_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + :param protecting_connectivity_service_end_point: The protecting_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type protecting_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + :param direction: The direction of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type direction: TapiCommonPortDirection + :param capacity: The capacity of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :type capacity: TapiCommonCapacity + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'protection_role': TapiConnectivityProtectionRole, + 'role': TapiCommonPortRole, + 'service_interface_point': TapiCommonServiceInterfacePointRef, + 'peer_fwd_connectivity_service_end_point': TapiConnectivityConnectivityServiceEndPointRef, + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'layer_protocol_qualifier': str, + 'connection_end_point': List[TapiConnectivityConnectionEndPointRef], + 'server_connectivity_service_end_point': TapiConnectivityConnectivityServiceEndPointRef, + 'protecting_connectivity_service_end_point': TapiConnectivityConnectivityServiceEndPointRef, + 'direction': TapiCommonPortDirection, + 'capacity': TapiCommonCapacity + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'protection_role': 'protection-role', + 'role': 'role', + 'service_interface_point': 'service-interface-point', + 'peer_fwd_connectivity_service_end_point': 'peer-fwd-connectivity-service-end-point', + 'layer_protocol_name': 'layer-protocol-name', + 'layer_protocol_qualifier': 'layer-protocol-qualifier', + 'connection_end_point': 'connection-end-point', + 'server_connectivity_service_end_point': 'server-connectivity-service-end-point', + 'protecting_connectivity_service_end_point': 'protecting-connectivity-service-end-point', + 'direction': 'direction', + 'capacity': 'capacity' + } + self._name = name + self._local_id = local_id + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._protection_role = protection_role + self._role = role + self._service_interface_point = service_interface_point + self._peer_fwd_connectivity_service_end_point = peer_fwd_connectivity_service_end_point + self._layer_protocol_name = layer_protocol_name + self._layer_protocol_qualifier = layer_protocol_qualifier + self._connection_end_point = connection_end_point + self._server_connectivity_service_end_point = server_connectivity_service_end_point + self._protecting_connectivity_service_end_point = protecting_connectivity_service_end_point + self._direction = direction + self._capacity = capacity + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceEndPoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceEndPoint of this TapiConnectivityConnectivityServiceEndPoint. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceEndPoint + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityConnectivityServiceEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityConnectivityServiceEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityConnectivityServiceEndPoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :return: The local_id of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :param local_id: The local_id of this TapiConnectivityConnectivityServiceEndPoint. + :type local_id: str + """ + + self._local_id = local_id + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The operational_state of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :param operational_state: The operational_state of this TapiConnectivityConnectivityServiceEndPoint. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The lifecycle_state of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :param lifecycle_state: The lifecycle_state of this TapiConnectivityConnectivityServiceEndPoint. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The administrative_state of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiConnectivityConnectivityServiceEndPoint. + + + :param administrative_state: The administrative_state of this TapiConnectivityConnectivityServiceEndPoint. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def protection_role(self) -> TapiConnectivityProtectionRole: + """Gets the protection_role of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The protection_role of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiConnectivityProtectionRole + """ + return self._protection_role + + @protection_role.setter + def protection_role(self, protection_role: TapiConnectivityProtectionRole): + """Sets the protection_role of this TapiConnectivityConnectivityServiceEndPoint. + + + :param protection_role: The protection_role of this TapiConnectivityConnectivityServiceEndPoint. + :type protection_role: TapiConnectivityProtectionRole + """ + + self._protection_role = protection_role + + @property + def role(self) -> TapiCommonPortRole: + """Gets the role of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The role of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonPortRole + """ + return self._role + + @role.setter + def role(self, role: TapiCommonPortRole): + """Sets the role of this TapiConnectivityConnectivityServiceEndPoint. + + + :param role: The role of this TapiConnectivityConnectivityServiceEndPoint. + :type role: TapiCommonPortRole + """ + + self._role = role + + @property + def service_interface_point(self) -> TapiCommonServiceInterfacePointRef: + """Gets the service_interface_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The service_interface_point of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonServiceInterfacePointRef + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: TapiCommonServiceInterfacePointRef): + """Sets the service_interface_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :param service_interface_point: The service_interface_point of this TapiConnectivityConnectivityServiceEndPoint. + :type service_interface_point: TapiCommonServiceInterfacePointRef + """ + + self._service_interface_point = service_interface_point + + @property + def peer_fwd_connectivity_service_end_point(self) -> TapiConnectivityConnectivityServiceEndPointRef: + """Gets the peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiConnectivityConnectivityServiceEndPointRef + """ + return self._peer_fwd_connectivity_service_end_point + + @peer_fwd_connectivity_service_end_point.setter + def peer_fwd_connectivity_service_end_point(self, peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef): + """Sets the peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :param peer_fwd_connectivity_service_end_point: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :type peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + """ + + self._peer_fwd_connectivity_service_end_point = peer_fwd_connectivity_service_end_point + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The layer_protocol_name of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiConnectivityConnectivityServiceEndPoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiConnectivityConnectivityServiceEndPoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def layer_protocol_qualifier(self) -> str: + """Gets the layer_protocol_qualifier of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :return: The layer_protocol_qualifier of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: str + """ + return self._layer_protocol_qualifier + + @layer_protocol_qualifier.setter + def layer_protocol_qualifier(self, layer_protocol_qualifier: str): + """Sets the layer_protocol_qualifier of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiConnectivityConnectivityServiceEndPoint. + :type layer_protocol_qualifier: str + """ + + self._layer_protocol_qualifier = layer_protocol_qualifier + + @property + def connection_end_point(self) -> List[TapiConnectivityConnectionEndPointRef]: + """Gets the connection_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :return: The connection_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: List[TapiConnectivityConnectionEndPointRef] + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: List[TapiConnectivityConnectionEndPointRef]): + """Sets the connection_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + none # noqa: E501 + + :param connection_end_point: The connection_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + """ + + self._connection_end_point = connection_end_point + + @property + def server_connectivity_service_end_point(self) -> TapiConnectivityConnectivityServiceEndPointRef: + """Gets the server_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The server_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiConnectivityConnectivityServiceEndPointRef + """ + return self._server_connectivity_service_end_point + + @server_connectivity_service_end_point.setter + def server_connectivity_service_end_point(self, server_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef): + """Sets the server_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :param server_connectivity_service_end_point: The server_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :type server_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + """ + + self._server_connectivity_service_end_point = server_connectivity_service_end_point + + @property + def protecting_connectivity_service_end_point(self) -> TapiConnectivityConnectivityServiceEndPointRef: + """Gets the protecting_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The protecting_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiConnectivityConnectivityServiceEndPointRef + """ + return self._protecting_connectivity_service_end_point + + @protecting_connectivity_service_end_point.setter + def protecting_connectivity_service_end_point(self, protecting_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef): + """Sets the protecting_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + + + :param protecting_connectivity_service_end_point: The protecting_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPoint. + :type protecting_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + """ + + self._protecting_connectivity_service_end_point = protecting_connectivity_service_end_point + + @property + def direction(self) -> TapiCommonPortDirection: + """Gets the direction of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The direction of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonPortDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonPortDirection): + """Sets the direction of this TapiConnectivityConnectivityServiceEndPoint. + + + :param direction: The direction of this TapiConnectivityConnectivityServiceEndPoint. + :type direction: TapiCommonPortDirection + """ + + self._direction = direction + + @property + def capacity(self) -> TapiCommonCapacity: + """Gets the capacity of this TapiConnectivityConnectivityServiceEndPoint. + + + :return: The capacity of this TapiConnectivityConnectivityServiceEndPoint. + :rtype: TapiCommonCapacity + """ + return self._capacity + + @capacity.setter + def capacity(self, capacity: TapiCommonCapacity): + """Sets the capacity of this TapiConnectivityConnectivityServiceEndPoint. + + + :param capacity: The capacity of this TapiConnectivityConnectivityServiceEndPoint. + :type capacity: TapiCommonCapacity + """ + + self._capacity = capacity diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..afde504d00bb5494da1b23c6c4cded75d4eb630e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service_ref import TapiConnectivityConnectivityServiceRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceEndPointRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_service_uuid: str=None, connectivity_service_end_point_local_id: str=None): # noqa: E501 + """TapiConnectivityConnectivityServiceEndPointRef - a model defined in Swagger + + :param connectivity_service_uuid: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceEndPointRef. # noqa: E501 + :type connectivity_service_uuid: str + :param connectivity_service_end_point_local_id: The connectivity_service_end_point_local_id of this TapiConnectivityConnectivityServiceEndPointRef. # noqa: E501 + :type connectivity_service_end_point_local_id: str + """ + self.swagger_types = { + 'connectivity_service_uuid': str, + 'connectivity_service_end_point_local_id': str + } + + self.attribute_map = { + 'connectivity_service_uuid': 'connectivity-service-uuid', + 'connectivity_service_end_point_local_id': 'connectivity-service-end-point-local-id' + } + self._connectivity_service_uuid = connectivity_service_uuid + self._connectivity_service_end_point_local_id = connectivity_service_end_point_local_id + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceEndPointRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceEndPointRef of this TapiConnectivityConnectivityServiceEndPointRef. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceEndPointRef + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_service_uuid(self) -> str: + """Gets the connectivity_service_uuid of this TapiConnectivityConnectivityServiceEndPointRef. + + none # noqa: E501 + + :return: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceEndPointRef. + :rtype: str + """ + return self._connectivity_service_uuid + + @connectivity_service_uuid.setter + def connectivity_service_uuid(self, connectivity_service_uuid: str): + """Sets the connectivity_service_uuid of this TapiConnectivityConnectivityServiceEndPointRef. + + none # noqa: E501 + + :param connectivity_service_uuid: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceEndPointRef. + :type connectivity_service_uuid: str + """ + + self._connectivity_service_uuid = connectivity_service_uuid + + @property + def connectivity_service_end_point_local_id(self) -> str: + """Gets the connectivity_service_end_point_local_id of this TapiConnectivityConnectivityServiceEndPointRef. + + none # noqa: E501 + + :return: The connectivity_service_end_point_local_id of this TapiConnectivityConnectivityServiceEndPointRef. + :rtype: str + """ + return self._connectivity_service_end_point_local_id + + @connectivity_service_end_point_local_id.setter + def connectivity_service_end_point_local_id(self, connectivity_service_end_point_local_id: str): + """Sets the connectivity_service_end_point_local_id of this TapiConnectivityConnectivityServiceEndPointRef. + + none # noqa: E501 + + :param connectivity_service_end_point_local_id: The connectivity_service_end_point_local_id of this TapiConnectivityConnectivityServiceEndPointRef. + :type connectivity_service_end_point_local_id: str + """ + + self._connectivity_service_end_point_local_id = connectivity_service_end_point_local_id diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..f0f156275ae8bac5c7382f94b14df13ccd9309f9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref import TapiConnectivityConnectivityServiceEndPointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceEndPointRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef=None): # noqa: E501 + """TapiConnectivityConnectivityServiceEndPointRefWrapper - a model defined in Swagger + + :param peer_fwd_connectivity_service_end_point: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPointRefWrapper. # noqa: E501 + :type peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + """ + self.swagger_types = { + 'peer_fwd_connectivity_service_end_point': TapiConnectivityConnectivityServiceEndPointRef + } + + self.attribute_map = { + 'peer_fwd_connectivity_service_end_point': 'peer-fwd-connectivity-service-end-point' + } + self._peer_fwd_connectivity_service_end_point = peer_fwd_connectivity_service_end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceEndPointRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceEndPointRefWrapper of this TapiConnectivityConnectivityServiceEndPointRefWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceEndPointRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def peer_fwd_connectivity_service_end_point(self) -> TapiConnectivityConnectivityServiceEndPointRef: + """Gets the peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPointRefWrapper. + + + :return: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPointRefWrapper. + :rtype: TapiConnectivityConnectivityServiceEndPointRef + """ + return self._peer_fwd_connectivity_service_end_point + + @peer_fwd_connectivity_service_end_point.setter + def peer_fwd_connectivity_service_end_point(self, peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef): + """Sets the peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPointRefWrapper. + + + :param peer_fwd_connectivity_service_end_point: The peer_fwd_connectivity_service_end_point of this TapiConnectivityConnectivityServiceEndPointRefWrapper. + :type peer_fwd_connectivity_service_end_point: TapiConnectivityConnectivityServiceEndPointRef + """ + + self._peer_fwd_connectivity_service_end_point = peer_fwd_connectivity_service_end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..2f55968a292fe062f714f08eec6dd450af1abaa2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_end_point_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service_end_point import TapiConnectivityConnectivityServiceEndPoint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceEndPointWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, end_point: TapiConnectivityConnectivityServiceEndPoint=None): # noqa: E501 + """TapiConnectivityConnectivityServiceEndPointWrapper - a model defined in Swagger + + :param end_point: The end_point of this TapiConnectivityConnectivityServiceEndPointWrapper. # noqa: E501 + :type end_point: TapiConnectivityConnectivityServiceEndPoint + """ + self.swagger_types = { + 'end_point': TapiConnectivityConnectivityServiceEndPoint + } + + self.attribute_map = { + 'end_point': 'end-point' + } + self._end_point = end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceEndPointWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceEndPointWrapper of this TapiConnectivityConnectivityServiceEndPointWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceEndPointWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def end_point(self) -> TapiConnectivityConnectivityServiceEndPoint: + """Gets the end_point of this TapiConnectivityConnectivityServiceEndPointWrapper. + + + :return: The end_point of this TapiConnectivityConnectivityServiceEndPointWrapper. + :rtype: TapiConnectivityConnectivityServiceEndPoint + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: TapiConnectivityConnectivityServiceEndPoint): + """Sets the end_point of this TapiConnectivityConnectivityServiceEndPointWrapper. + + + :param end_point: The end_point of this TapiConnectivityConnectivityServiceEndPointWrapper. + :type end_point: TapiConnectivityConnectivityServiceEndPoint + """ + + self._end_point = end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..b854f2223db359cf03db8e6df27948fc62535ca1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityConnectivityServiceRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_service_uuid: str=None): # noqa: E501 + """TapiConnectivityConnectivityServiceRef - a model defined in Swagger + + :param connectivity_service_uuid: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceRef. # noqa: E501 + :type connectivity_service_uuid: str + """ + self.swagger_types = { + 'connectivity_service_uuid': str + } + + self.attribute_map = { + 'connectivity_service_uuid': 'connectivity-service-uuid' + } + self._connectivity_service_uuid = connectivity_service_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceRef of this TapiConnectivityConnectivityServiceRef. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceRef + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_service_uuid(self) -> str: + """Gets the connectivity_service_uuid of this TapiConnectivityConnectivityServiceRef. + + none # noqa: E501 + + :return: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceRef. + :rtype: str + """ + return self._connectivity_service_uuid + + @connectivity_service_uuid.setter + def connectivity_service_uuid(self, connectivity_service_uuid: str): + """Sets the connectivity_service_uuid of this TapiConnectivityConnectivityServiceRef. + + none # noqa: E501 + + :param connectivity_service_uuid: The connectivity_service_uuid of this TapiConnectivityConnectivityServiceRef. + :type connectivity_service_uuid: str + """ + + self._connectivity_service_uuid = connectivity_service_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..289ab904cf5f966b8e4155bd7f253e0f2c367d70 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service_ref import TapiConnectivityConnectivityServiceRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, coroute_inclusion: TapiConnectivityConnectivityServiceRef=None): # noqa: E501 + """TapiConnectivityConnectivityServiceRefWrapper - a model defined in Swagger + + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityServiceRefWrapper. # noqa: E501 + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + """ + self.swagger_types = { + 'coroute_inclusion': TapiConnectivityConnectivityServiceRef + } + + self.attribute_map = { + 'coroute_inclusion': 'coroute-inclusion' + } + self._coroute_inclusion = coroute_inclusion + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceRefWrapper of this TapiConnectivityConnectivityServiceRefWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def coroute_inclusion(self) -> TapiConnectivityConnectivityServiceRef: + """Gets the coroute_inclusion of this TapiConnectivityConnectivityServiceRefWrapper. + + + :return: The coroute_inclusion of this TapiConnectivityConnectivityServiceRefWrapper. + :rtype: TapiConnectivityConnectivityServiceRef + """ + return self._coroute_inclusion + + @coroute_inclusion.setter + def coroute_inclusion(self, coroute_inclusion: TapiConnectivityConnectivityServiceRef): + """Sets the coroute_inclusion of this TapiConnectivityConnectivityServiceRefWrapper. + + + :param coroute_inclusion: The coroute_inclusion of this TapiConnectivityConnectivityServiceRefWrapper. + :type coroute_inclusion: TapiConnectivityConnectivityServiceRef + """ + + self._coroute_inclusion = coroute_inclusion diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..9be218bbe7a102094531ad1a754a138a8155d408 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_connectivity_service_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityConnectivityServiceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_service: TapiConnectivityConnectivityService=None): # noqa: E501 + """TapiConnectivityConnectivityServiceWrapper - a model defined in Swagger + + :param connectivity_service: The connectivity_service of this TapiConnectivityConnectivityServiceWrapper. # noqa: E501 + :type connectivity_service: TapiConnectivityConnectivityService + """ + self.swagger_types = { + 'connectivity_service': TapiConnectivityConnectivityService + } + + self.attribute_map = { + 'connectivity_service': 'connectivity-service' + } + self._connectivity_service = connectivity_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityConnectivityServiceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ConnectivityServiceWrapper of this TapiConnectivityConnectivityServiceWrapper. # noqa: E501 + :rtype: TapiConnectivityConnectivityServiceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_service(self) -> TapiConnectivityConnectivityService: + """Gets the connectivity_service of this TapiConnectivityConnectivityServiceWrapper. + + + :return: The connectivity_service of this TapiConnectivityConnectivityServiceWrapper. + :rtype: TapiConnectivityConnectivityService + """ + return self._connectivity_service + + @connectivity_service.setter + def connectivity_service(self, connectivity_service: TapiConnectivityConnectivityService): + """Sets the connectivity_service of this TapiConnectivityConnectivityServiceWrapper. + + + :param connectivity_service: The connectivity_service of this TapiConnectivityConnectivityServiceWrapper. + :type connectivity_service: TapiConnectivityConnectivityService + """ + + self._connectivity_service = connectivity_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_context_augmentation3.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_context_augmentation3.py new file mode 100644 index 0000000000000000000000000000000000000000..1e4fe8d2064b1fc86c2f1a2de31584f052ff2ff1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_context_augmentation3.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_context import TapiConnectivityConnectivityContext # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityContextAugmentation3(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connectivity_context: TapiConnectivityConnectivityContext=None): # noqa: E501 + """TapiConnectivityContextAugmentation3 - a model defined in Swagger + + :param connectivity_context: The connectivity_context of this TapiConnectivityContextAugmentation3. # noqa: E501 + :type connectivity_context: TapiConnectivityConnectivityContext + """ + self.swagger_types = { + 'connectivity_context': TapiConnectivityConnectivityContext + } + + self.attribute_map = { + 'connectivity_context': 'connectivity-context' + } + self._connectivity_context = connectivity_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityContextAugmentation3': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ContextAugmentation3 of this TapiConnectivityContextAugmentation3. # noqa: E501 + :rtype: TapiConnectivityContextAugmentation3 + """ + return util.deserialize_model(dikt, cls) + + @property + def connectivity_context(self) -> TapiConnectivityConnectivityContext: + """Gets the connectivity_context of this TapiConnectivityContextAugmentation3. + + + :return: The connectivity_context of this TapiConnectivityContextAugmentation3. + :rtype: TapiConnectivityConnectivityContext + """ + return self._connectivity_context + + @connectivity_context.setter + def connectivity_context(self, connectivity_context: TapiConnectivityConnectivityContext): + """Sets the connectivity_context of this TapiConnectivityContextAugmentation3. + + + :param connectivity_context: The connectivity_context of this TapiConnectivityContextAugmentation3. + :type connectivity_context: TapiConnectivityConnectivityContext + """ + + self._connectivity_context = connectivity_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_coordinate_type.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_coordinate_type.py new file mode 100644 index 0000000000000000000000000000000000000000..f7924219f829bff23cd829cc5c1df365a30e610f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_coordinate_type.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityCoordinateType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + NO_COORDINATE = "NO_COORDINATE" + HOLD_OFF_TIME = "HOLD_OFF_TIME" + WAIT_FOR_NOTIFICATION = "WAIT_FOR_NOTIFICATION" + def __init__(self): # noqa: E501 + """TapiConnectivityCoordinateType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCoordinateType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CoordinateType of this TapiConnectivityCoordinateType. # noqa: E501 + :rtype: TapiConnectivityCoordinateType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_create_connectivity_service.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_create_connectivity_service.py new file mode 100644 index 0000000000000000000000000000000000000000..1d22b1bfb6584a170b62717c63f780a27d662660 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_create_connectivity_service.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_createconnectivityservice_output import TapiConnectivityCreateconnectivityserviceOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCreateConnectivityService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityCreateconnectivityserviceOutput=None): # noqa: E501 + """TapiConnectivityCreateConnectivityService - a model defined in Swagger + + :param output: The output of this TapiConnectivityCreateConnectivityService. # noqa: E501 + :type output: TapiConnectivityCreateconnectivityserviceOutput + """ + self.swagger_types = { + 'output': TapiConnectivityCreateconnectivityserviceOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCreateConnectivityService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.CreateConnectivityService of this TapiConnectivityCreateConnectivityService. # noqa: E501 + :rtype: TapiConnectivityCreateConnectivityService + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityCreateconnectivityserviceOutput: + """Gets the output of this TapiConnectivityCreateConnectivityService. + + + :return: The output of this TapiConnectivityCreateConnectivityService. + :rtype: TapiConnectivityCreateconnectivityserviceOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityCreateconnectivityserviceOutput): + """Sets the output of this TapiConnectivityCreateConnectivityService. + + + :param output: The output of this TapiConnectivityCreateConnectivityService. + :type output: TapiConnectivityCreateconnectivityserviceOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..dcb22ab3b2a1ccd9e75b4ae10dac4ae54694137e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_input.py @@ -0,0 +1,201 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_constraint import TapiConnectivityConnectivityConstraint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point import TapiConnectivityConnectivityServiceEndPoint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_resilience_constraint import TapiConnectivityResilienceConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCreateconnectivityserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_constraint: TapiPathComputationTopologyConstraint=None, end_point: List[TapiConnectivityConnectivityServiceEndPoint]=None, resilience_constraint: TapiConnectivityResilienceConstraint=None, routing_constraint: TapiPathComputationRoutingConstraint=None, state: str=None, connectivity_constraint: TapiConnectivityConnectivityConstraint=None): # noqa: E501 + """TapiConnectivityCreateconnectivityserviceInput - a model defined in Swagger + + :param topology_constraint: The topology_constraint of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type topology_constraint: TapiPathComputationTopologyConstraint + :param end_point: The end_point of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + :param resilience_constraint: The resilience_constraint of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type resilience_constraint: TapiConnectivityResilienceConstraint + :param routing_constraint: The routing_constraint of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param state: The state of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type state: str + :param connectivity_constraint: The connectivity_constraint of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :type connectivity_constraint: TapiConnectivityConnectivityConstraint + """ + self.swagger_types = { + 'topology_constraint': TapiPathComputationTopologyConstraint, + 'end_point': List[TapiConnectivityConnectivityServiceEndPoint], + 'resilience_constraint': TapiConnectivityResilienceConstraint, + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'state': str, + 'connectivity_constraint': TapiConnectivityConnectivityConstraint + } + + self.attribute_map = { + 'topology_constraint': 'topology-constraint', + 'end_point': 'end-point', + 'resilience_constraint': 'resilience-constraint', + 'routing_constraint': 'routing-constraint', + 'state': 'state', + 'connectivity_constraint': 'connectivity-constraint' + } + self._topology_constraint = topology_constraint + self._end_point = end_point + self._resilience_constraint = resilience_constraint + self._routing_constraint = routing_constraint + self._state = state + self._connectivity_constraint = connectivity_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCreateconnectivityserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.createconnectivityservice.Input of this TapiConnectivityCreateconnectivityserviceInput. # noqa: E501 + :rtype: TapiConnectivityCreateconnectivityserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_constraint(self) -> TapiPathComputationTopologyConstraint: + """Gets the topology_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :return: The topology_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: TapiPathComputationTopologyConstraint + """ + return self._topology_constraint + + @topology_constraint.setter + def topology_constraint(self, topology_constraint: TapiPathComputationTopologyConstraint): + """Sets the topology_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :param topology_constraint: The topology_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + + self._topology_constraint = topology_constraint + + @property + def end_point(self) -> List[TapiConnectivityConnectivityServiceEndPoint]: + """Gets the end_point of this TapiConnectivityCreateconnectivityserviceInput. + + none # noqa: E501 + + :return: The end_point of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: List[TapiConnectivityConnectivityServiceEndPoint] + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: List[TapiConnectivityConnectivityServiceEndPoint]): + """Sets the end_point of this TapiConnectivityCreateconnectivityserviceInput. + + none # noqa: E501 + + :param end_point: The end_point of this TapiConnectivityCreateconnectivityserviceInput. + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + """ + + self._end_point = end_point + + @property + def resilience_constraint(self) -> TapiConnectivityResilienceConstraint: + """Gets the resilience_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :return: The resilience_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: TapiConnectivityResilienceConstraint + """ + return self._resilience_constraint + + @resilience_constraint.setter + def resilience_constraint(self, resilience_constraint: TapiConnectivityResilienceConstraint): + """Sets the resilience_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :param resilience_constraint: The resilience_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :type resilience_constraint: TapiConnectivityResilienceConstraint + """ + + self._resilience_constraint = resilience_constraint + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :return: The routing_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :param routing_constraint: The routing_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def state(self) -> str: + """Gets the state of this TapiConnectivityCreateconnectivityserviceInput. + + none # noqa: E501 + + :return: The state of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: str + """ + return self._state + + @state.setter + def state(self, state: str): + """Sets the state of this TapiConnectivityCreateconnectivityserviceInput. + + none # noqa: E501 + + :param state: The state of this TapiConnectivityCreateconnectivityserviceInput. + :type state: str + """ + + self._state = state + + @property + def connectivity_constraint(self) -> TapiConnectivityConnectivityConstraint: + """Gets the connectivity_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :return: The connectivity_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :rtype: TapiConnectivityConnectivityConstraint + """ + return self._connectivity_constraint + + @connectivity_constraint.setter + def connectivity_constraint(self, connectivity_constraint: TapiConnectivityConnectivityConstraint): + """Sets the connectivity_constraint of this TapiConnectivityCreateconnectivityserviceInput. + + + :param connectivity_constraint: The connectivity_constraint of this TapiConnectivityCreateconnectivityserviceInput. + :type connectivity_constraint: TapiConnectivityConnectivityConstraint + """ + + self._connectivity_constraint = connectivity_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_output.py new file mode 100644 index 0000000000000000000000000000000000000000..a17efd6245eddeec5c4a3b2fe85b8e35de253dc6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_createconnectivityservice_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityCreateconnectivityserviceOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiConnectivityConnectivityService=None): # noqa: E501 + """TapiConnectivityCreateconnectivityserviceOutput - a model defined in Swagger + + :param service: The service of this TapiConnectivityCreateconnectivityserviceOutput. # noqa: E501 + :type service: TapiConnectivityConnectivityService + """ + self.swagger_types = { + 'service': TapiConnectivityConnectivityService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityCreateconnectivityserviceOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.createconnectivityservice.Output of this TapiConnectivityCreateconnectivityserviceOutput. # noqa: E501 + :rtype: TapiConnectivityCreateconnectivityserviceOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiConnectivityConnectivityService: + """Gets the service of this TapiConnectivityCreateconnectivityserviceOutput. + + + :return: The service of this TapiConnectivityCreateconnectivityserviceOutput. + :rtype: TapiConnectivityConnectivityService + """ + return self._service + + @service.setter + def service(self, service: TapiConnectivityConnectivityService): + """Sets the service of this TapiConnectivityCreateconnectivityserviceOutput. + + + :param service: The service of this TapiConnectivityCreateconnectivityserviceOutput. + :type service: TapiConnectivityConnectivityService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_deleteconnectivityservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_deleteconnectivityservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..b2bd8d52488b5f193a9c72ed968f7cc441c9bba2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_deleteconnectivityservice_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityDeleteconnectivityserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_id_or_name: str=None): # noqa: E501 + """TapiConnectivityDeleteconnectivityserviceInput - a model defined in Swagger + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityDeleteconnectivityserviceInput. # noqa: E501 + :type service_id_or_name: str + """ + self.swagger_types = { + 'service_id_or_name': str + } + + self.attribute_map = { + 'service_id_or_name': 'service-id-or-name' + } + self._service_id_or_name = service_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityDeleteconnectivityserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.deleteconnectivityservice.Input of this TapiConnectivityDeleteconnectivityserviceInput. # noqa: E501 + :rtype: TapiConnectivityDeleteconnectivityserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def service_id_or_name(self) -> str: + """Gets the service_id_or_name of this TapiConnectivityDeleteconnectivityserviceInput. + + none # noqa: E501 + + :return: The service_id_or_name of this TapiConnectivityDeleteconnectivityserviceInput. + :rtype: str + """ + return self._service_id_or_name + + @service_id_or_name.setter + def service_id_or_name(self, service_id_or_name: str): + """Sets the service_id_or_name of this TapiConnectivityDeleteconnectivityserviceInput. + + none # noqa: E501 + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityDeleteconnectivityserviceInput. + :type service_id_or_name: str + """ + + self._service_id_or_name = service_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_details.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_details.py new file mode 100644 index 0000000000000000000000000000000000000000..dcef8c372f3cf195909391e153e2569d01991c4d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectiondetails_output import TapiConnectivityGetconnectiondetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetConnectionDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityGetconnectiondetailsOutput=None): # noqa: E501 + """TapiConnectivityGetConnectionDetails - a model defined in Swagger + + :param output: The output of this TapiConnectivityGetConnectionDetails. # noqa: E501 + :type output: TapiConnectivityGetconnectiondetailsOutput + """ + self.swagger_types = { + 'output': TapiConnectivityGetconnectiondetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetConnectionDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.GetConnectionDetails of this TapiConnectivityGetConnectionDetails. # noqa: E501 + :rtype: TapiConnectivityGetConnectionDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityGetconnectiondetailsOutput: + """Gets the output of this TapiConnectivityGetConnectionDetails. + + + :return: The output of this TapiConnectivityGetConnectionDetails. + :rtype: TapiConnectivityGetconnectiondetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityGetconnectiondetailsOutput): + """Sets the output of this TapiConnectivityGetConnectionDetails. + + + :param output: The output of this TapiConnectivityGetConnectionDetails. + :type output: TapiConnectivityGetconnectiondetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_end_point_details.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_end_point_details.py new file mode 100644 index 0000000000000000000000000000000000000000..8ef8320b6264708a9958aee5cd6b655f023cf639 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connection_end_point_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectionendpointdetails_output import TapiConnectivityGetconnectionendpointdetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetConnectionEndPointDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityGetconnectionendpointdetailsOutput=None): # noqa: E501 + """TapiConnectivityGetConnectionEndPointDetails - a model defined in Swagger + + :param output: The output of this TapiConnectivityGetConnectionEndPointDetails. # noqa: E501 + :type output: TapiConnectivityGetconnectionendpointdetailsOutput + """ + self.swagger_types = { + 'output': TapiConnectivityGetconnectionendpointdetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetConnectionEndPointDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.GetConnectionEndPointDetails of this TapiConnectivityGetConnectionEndPointDetails. # noqa: E501 + :rtype: TapiConnectivityGetConnectionEndPointDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityGetconnectionendpointdetailsOutput: + """Gets the output of this TapiConnectivityGetConnectionEndPointDetails. + + + :return: The output of this TapiConnectivityGetConnectionEndPointDetails. + :rtype: TapiConnectivityGetconnectionendpointdetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityGetconnectionendpointdetailsOutput): + """Sets the output of this TapiConnectivityGetConnectionEndPointDetails. + + + :param output: The output of this TapiConnectivityGetConnectionEndPointDetails. + :type output: TapiConnectivityGetconnectionendpointdetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_details.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_details.py new file mode 100644 index 0000000000000000000000000000000000000000..94634c34435a9cf3e8c16f8a85b369b50c31021c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectivityservicedetails_output import TapiConnectivityGetconnectivityservicedetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetConnectivityServiceDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityGetconnectivityservicedetailsOutput=None): # noqa: E501 + """TapiConnectivityGetConnectivityServiceDetails - a model defined in Swagger + + :param output: The output of this TapiConnectivityGetConnectivityServiceDetails. # noqa: E501 + :type output: TapiConnectivityGetconnectivityservicedetailsOutput + """ + self.swagger_types = { + 'output': TapiConnectivityGetconnectivityservicedetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetConnectivityServiceDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.GetConnectivityServiceDetails of this TapiConnectivityGetConnectivityServiceDetails. # noqa: E501 + :rtype: TapiConnectivityGetConnectivityServiceDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityGetconnectivityservicedetailsOutput: + """Gets the output of this TapiConnectivityGetConnectivityServiceDetails. + + + :return: The output of this TapiConnectivityGetConnectivityServiceDetails. + :rtype: TapiConnectivityGetconnectivityservicedetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityGetconnectivityservicedetailsOutput): + """Sets the output of this TapiConnectivityGetConnectivityServiceDetails. + + + :param output: The output of this TapiConnectivityGetConnectivityServiceDetails. + :type output: TapiConnectivityGetconnectivityservicedetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_list.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_list.py new file mode 100644 index 0000000000000000000000000000000000000000..0690417e6db422b8db768fef5a6e9b33bdfb36d7 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_get_connectivity_service_list.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_getconnectivityservicelist_output import TapiConnectivityGetconnectivityservicelistOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetConnectivityServiceList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityGetconnectivityservicelistOutput=None): # noqa: E501 + """TapiConnectivityGetConnectivityServiceList - a model defined in Swagger + + :param output: The output of this TapiConnectivityGetConnectivityServiceList. # noqa: E501 + :type output: TapiConnectivityGetconnectivityservicelistOutput + """ + self.swagger_types = { + 'output': TapiConnectivityGetconnectivityservicelistOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetConnectivityServiceList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.GetConnectivityServiceList of this TapiConnectivityGetConnectivityServiceList. # noqa: E501 + :rtype: TapiConnectivityGetConnectivityServiceList + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityGetconnectivityservicelistOutput: + """Gets the output of this TapiConnectivityGetConnectivityServiceList. + + + :return: The output of this TapiConnectivityGetConnectivityServiceList. + :rtype: TapiConnectivityGetconnectivityservicelistOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityGetconnectivityservicelistOutput): + """Sets the output of this TapiConnectivityGetConnectivityServiceList. + + + :param output: The output of this TapiConnectivityGetConnectivityServiceList. + :type output: TapiConnectivityGetconnectivityservicelistOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..e67339d980718a136b9176871eb6dc8a42aec0a3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityGetconnectiondetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_id_or_name: str=None): # noqa: E501 + """TapiConnectivityGetconnectiondetailsInput - a model defined in Swagger + + :param connection_id_or_name: The connection_id_or_name of this TapiConnectivityGetconnectiondetailsInput. # noqa: E501 + :type connection_id_or_name: str + """ + self.swagger_types = { + 'connection_id_or_name': str + } + + self.attribute_map = { + 'connection_id_or_name': 'connection-id-or-name' + } + self._connection_id_or_name = connection_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectiondetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectiondetails.Input of this TapiConnectivityGetconnectiondetailsInput. # noqa: E501 + :rtype: TapiConnectivityGetconnectiondetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_id_or_name(self) -> str: + """Gets the connection_id_or_name of this TapiConnectivityGetconnectiondetailsInput. + + none # noqa: E501 + + :return: The connection_id_or_name of this TapiConnectivityGetconnectiondetailsInput. + :rtype: str + """ + return self._connection_id_or_name + + @connection_id_or_name.setter + def connection_id_or_name(self, connection_id_or_name: str): + """Sets the connection_id_or_name of this TapiConnectivityGetconnectiondetailsInput. + + none # noqa: E501 + + :param connection_id_or_name: The connection_id_or_name of this TapiConnectivityGetconnectiondetailsInput. + :type connection_id_or_name: str + """ + + self._connection_id_or_name = connection_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..cf93f482c72a65f18f757293e21eec75a1e3f2b6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectiondetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection import TapiConnectivityConnection # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetconnectiondetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection: TapiConnectivityConnection=None): # noqa: E501 + """TapiConnectivityGetconnectiondetailsOutput - a model defined in Swagger + + :param connection: The connection of this TapiConnectivityGetconnectiondetailsOutput. # noqa: E501 + :type connection: TapiConnectivityConnection + """ + self.swagger_types = { + 'connection': TapiConnectivityConnection + } + + self.attribute_map = { + 'connection': 'connection' + } + self._connection = connection + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectiondetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectiondetails.Output of this TapiConnectivityGetconnectiondetailsOutput. # noqa: E501 + :rtype: TapiConnectivityGetconnectiondetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def connection(self) -> TapiConnectivityConnection: + """Gets the connection of this TapiConnectivityGetconnectiondetailsOutput. + + + :return: The connection of this TapiConnectivityGetconnectiondetailsOutput. + :rtype: TapiConnectivityConnection + """ + return self._connection + + @connection.setter + def connection(self, connection: TapiConnectivityConnection): + """Sets the connection of this TapiConnectivityGetconnectiondetailsOutput. + + + :param connection: The connection of this TapiConnectivityGetconnectiondetailsOutput. + :type connection: TapiConnectivityConnection + """ + + self._connection = connection diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..86ca4a4c459555fbd662a42b67256513f3861930 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_input.py @@ -0,0 +1,148 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityGetconnectionendpointdetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cep_id_or_name: str=None, nep_id_or_name: str=None, node_id_or_name: str=None, topology_id_or_name: str=None): # noqa: E501 + """TapiConnectivityGetconnectionendpointdetailsInput - a model defined in Swagger + + :param cep_id_or_name: The cep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. # noqa: E501 + :type cep_id_or_name: str + :param nep_id_or_name: The nep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. # noqa: E501 + :type nep_id_or_name: str + :param node_id_or_name: The node_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. # noqa: E501 + :type node_id_or_name: str + :param topology_id_or_name: The topology_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. # noqa: E501 + :type topology_id_or_name: str + """ + self.swagger_types = { + 'cep_id_or_name': str, + 'nep_id_or_name': str, + 'node_id_or_name': str, + 'topology_id_or_name': str + } + + self.attribute_map = { + 'cep_id_or_name': 'cep-id-or-name', + 'nep_id_or_name': 'nep-id-or-name', + 'node_id_or_name': 'node-id-or-name', + 'topology_id_or_name': 'topology-id-or-name' + } + self._cep_id_or_name = cep_id_or_name + self._nep_id_or_name = nep_id_or_name + self._node_id_or_name = node_id_or_name + self._topology_id_or_name = topology_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectionendpointdetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectionendpointdetails.Input of this TapiConnectivityGetconnectionendpointdetailsInput. # noqa: E501 + :rtype: TapiConnectivityGetconnectionendpointdetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def cep_id_or_name(self) -> str: + """Gets the cep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :return: The cep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :rtype: str + """ + return self._cep_id_or_name + + @cep_id_or_name.setter + def cep_id_or_name(self, cep_id_or_name: str): + """Sets the cep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :param cep_id_or_name: The cep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :type cep_id_or_name: str + """ + + self._cep_id_or_name = cep_id_or_name + + @property + def nep_id_or_name(self) -> str: + """Gets the nep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :return: The nep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :rtype: str + """ + return self._nep_id_or_name + + @nep_id_or_name.setter + def nep_id_or_name(self, nep_id_or_name: str): + """Sets the nep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :param nep_id_or_name: The nep_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :type nep_id_or_name: str + """ + + self._nep_id_or_name = nep_id_or_name + + @property + def node_id_or_name(self) -> str: + """Gets the node_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :return: The node_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :rtype: str + """ + return self._node_id_or_name + + @node_id_or_name.setter + def node_id_or_name(self, node_id_or_name: str): + """Sets the node_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :param node_id_or_name: The node_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :type node_id_or_name: str + """ + + self._node_id_or_name = node_id_or_name + + @property + def topology_id_or_name(self) -> str: + """Gets the topology_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :return: The topology_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :rtype: str + """ + return self._topology_id_or_name + + @topology_id_or_name.setter + def topology_id_or_name(self, topology_id_or_name: str): + """Sets the topology_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + + none # noqa: E501 + + :param topology_id_or_name: The topology_id_or_name of this TapiConnectivityGetconnectionendpointdetailsInput. + :type topology_id_or_name: str + """ + + self._topology_id_or_name = topology_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..d7a9e6e03bae5fdf4c7166c9bb229de138d95ead --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectionendpointdetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_end_point import TapiConnectivityConnectionEndPoint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetconnectionendpointdetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_end_point: TapiConnectivityConnectionEndPoint=None): # noqa: E501 + """TapiConnectivityGetconnectionendpointdetailsOutput - a model defined in Swagger + + :param connection_end_point: The connection_end_point of this TapiConnectivityGetconnectionendpointdetailsOutput. # noqa: E501 + :type connection_end_point: TapiConnectivityConnectionEndPoint + """ + self.swagger_types = { + 'connection_end_point': TapiConnectivityConnectionEndPoint + } + + self.attribute_map = { + 'connection_end_point': 'connection-end-point' + } + self._connection_end_point = connection_end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectionendpointdetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectionendpointdetails.Output of this TapiConnectivityGetconnectionendpointdetailsOutput. # noqa: E501 + :rtype: TapiConnectivityGetconnectionendpointdetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_end_point(self) -> TapiConnectivityConnectionEndPoint: + """Gets the connection_end_point of this TapiConnectivityGetconnectionendpointdetailsOutput. + + + :return: The connection_end_point of this TapiConnectivityGetconnectionendpointdetailsOutput. + :rtype: TapiConnectivityConnectionEndPoint + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: TapiConnectivityConnectionEndPoint): + """Sets the connection_end_point of this TapiConnectivityGetconnectionendpointdetailsOutput. + + + :param connection_end_point: The connection_end_point of this TapiConnectivityGetconnectionendpointdetailsOutput. + :type connection_end_point: TapiConnectivityConnectionEndPoint + """ + + self._connection_end_point = connection_end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..820758a5544b01c776625a4f85d2222f40b15d21 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityGetconnectivityservicedetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_id_or_name: str=None): # noqa: E501 + """TapiConnectivityGetconnectivityservicedetailsInput - a model defined in Swagger + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityGetconnectivityservicedetailsInput. # noqa: E501 + :type service_id_or_name: str + """ + self.swagger_types = { + 'service_id_or_name': str + } + + self.attribute_map = { + 'service_id_or_name': 'service-id-or-name' + } + self._service_id_or_name = service_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectivityservicedetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectivityservicedetails.Input of this TapiConnectivityGetconnectivityservicedetailsInput. # noqa: E501 + :rtype: TapiConnectivityGetconnectivityservicedetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def service_id_or_name(self) -> str: + """Gets the service_id_or_name of this TapiConnectivityGetconnectivityservicedetailsInput. + + none # noqa: E501 + + :return: The service_id_or_name of this TapiConnectivityGetconnectivityservicedetailsInput. + :rtype: str + """ + return self._service_id_or_name + + @service_id_or_name.setter + def service_id_or_name(self, service_id_or_name: str): + """Sets the service_id_or_name of this TapiConnectivityGetconnectivityservicedetailsInput. + + none # noqa: E501 + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityGetconnectivityservicedetailsInput. + :type service_id_or_name: str + """ + + self._service_id_or_name = service_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..3b08975ce29bba78f9184d96758dbe1041882525 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicedetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetconnectivityservicedetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiConnectivityConnectivityService=None): # noqa: E501 + """TapiConnectivityGetconnectivityservicedetailsOutput - a model defined in Swagger + + :param service: The service of this TapiConnectivityGetconnectivityservicedetailsOutput. # noqa: E501 + :type service: TapiConnectivityConnectivityService + """ + self.swagger_types = { + 'service': TapiConnectivityConnectivityService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectivityservicedetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectivityservicedetails.Output of this TapiConnectivityGetconnectivityservicedetailsOutput. # noqa: E501 + :rtype: TapiConnectivityGetconnectivityservicedetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiConnectivityConnectivityService: + """Gets the service of this TapiConnectivityGetconnectivityservicedetailsOutput. + + + :return: The service of this TapiConnectivityGetconnectivityservicedetailsOutput. + :rtype: TapiConnectivityConnectivityService + """ + return self._service + + @service.setter + def service(self, service: TapiConnectivityConnectivityService): + """Sets the service of this TapiConnectivityGetconnectivityservicedetailsOutput. + + + :param service: The service of this TapiConnectivityGetconnectivityservicedetailsOutput. + :type service: TapiConnectivityConnectivityService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicelist_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicelist_output.py new file mode 100644 index 0000000000000000000000000000000000000000..6490999b3799cb16883db8898199bc4872b12f66 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_getconnectivityservicelist_output.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityGetconnectivityservicelistOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: List[TapiConnectivityConnectivityService]=None): # noqa: E501 + """TapiConnectivityGetconnectivityservicelistOutput - a model defined in Swagger + + :param service: The service of this TapiConnectivityGetconnectivityservicelistOutput. # noqa: E501 + :type service: List[TapiConnectivityConnectivityService] + """ + self.swagger_types = { + 'service': List[TapiConnectivityConnectivityService] + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityGetconnectivityservicelistOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.getconnectivityservicelist.Output of this TapiConnectivityGetconnectivityservicelistOutput. # noqa: E501 + :rtype: TapiConnectivityGetconnectivityservicelistOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> List[TapiConnectivityConnectivityService]: + """Gets the service of this TapiConnectivityGetconnectivityservicelistOutput. + + none # noqa: E501 + + :return: The service of this TapiConnectivityGetconnectivityservicelistOutput. + :rtype: List[TapiConnectivityConnectivityService] + """ + return self._service + + @service.setter + def service(self, service: List[TapiConnectivityConnectivityService]): + """Sets the service of this TapiConnectivityGetconnectivityservicelistOutput. + + none # noqa: E501 + + :param service: The service of this TapiConnectivityGetconnectivityservicelistOutput. + :type service: List[TapiConnectivityConnectivityService] + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_owned_node_edge_point_augmentation1.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_owned_node_edge_point_augmentation1.py new file mode 100644 index 0000000000000000000000000000000000000000..b3ee274b1a4d9c5c9959a695166898411f82a88f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_owned_node_edge_point_augmentation1.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_cep_list import TapiConnectivityCepList # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityOwnedNodeEdgePointAugmentation1(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cep_list: TapiConnectivityCepList=None): # noqa: E501 + """TapiConnectivityOwnedNodeEdgePointAugmentation1 - a model defined in Swagger + + :param cep_list: The cep_list of this TapiConnectivityOwnedNodeEdgePointAugmentation1. # noqa: E501 + :type cep_list: TapiConnectivityCepList + """ + self.swagger_types = { + 'cep_list': TapiConnectivityCepList + } + + self.attribute_map = { + 'cep_list': 'cep-list' + } + self._cep_list = cep_list + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityOwnedNodeEdgePointAugmentation1': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.OwnedNodeEdgePointAugmentation1 of this TapiConnectivityOwnedNodeEdgePointAugmentation1. # noqa: E501 + :rtype: TapiConnectivityOwnedNodeEdgePointAugmentation1 + """ + return util.deserialize_model(dikt, cls) + + @property + def cep_list(self) -> TapiConnectivityCepList: + """Gets the cep_list of this TapiConnectivityOwnedNodeEdgePointAugmentation1. + + + :return: The cep_list of this TapiConnectivityOwnedNodeEdgePointAugmentation1. + :rtype: TapiConnectivityCepList + """ + return self._cep_list + + @cep_list.setter + def cep_list(self, cep_list: TapiConnectivityCepList): + """Sets the cep_list of this TapiConnectivityOwnedNodeEdgePointAugmentation1. + + + :param cep_list: The cep_list of this TapiConnectivityOwnedNodeEdgePointAugmentation1. + :type cep_list: TapiConnectivityCepList + """ + + self._cep_list = cep_list diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_protection_role.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_protection_role.py new file mode 100644 index 0000000000000000000000000000000000000000..045f9e0d1a83295ea6afe9c7e22fc2f7dcaf2be8 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_protection_role.py @@ -0,0 +1,46 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityProtectionRole(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + WORK = "WORK" + PROTECT = "PROTECT" + PROTECTED = "PROTECTED" + NA = "NA" + WORK_RESTORE = "WORK_RESTORE" + PROTECT_RESTORE = "PROTECT_RESTORE" + def __init__(self): # noqa: E501 + """TapiConnectivityProtectionRole - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityProtectionRole': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ProtectionRole of this TapiConnectivityProtectionRole. # noqa: E501 + :rtype: TapiConnectivityProtectionRole + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_constraint.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_constraint.py new file mode 100644 index 0000000000000000000000000000000000000000..d122587aa99abe20cb93592fe253a7c5190b3a55 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_constraint.py @@ -0,0 +1,342 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_coordinate_type import TapiConnectivityCoordinateType # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_reversion_mode import TapiConnectivityReversionMode # noqa: F401,E501 +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityResilienceConstraint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, is_lock_out: bool=False, max_switch_times: int=None, restoration_coordinate_type: TapiConnectivityCoordinateType=None, is_coordinated_switching_both_ends: bool=False, hold_off_time: int=None, is_frozen: bool=False, wait_to_revert_time: int=15, resilience_type: TapiTopologyResilienceType=None, preferred_restoration_layer: List[TapiCommonLayerProtocolName]=None, restore_priority: int=None, reversion_mode: TapiConnectivityReversionMode=None): # noqa: E501 + """TapiConnectivityResilienceConstraint - a model defined in Swagger + + :param is_lock_out: The is_lock_out of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type is_lock_out: bool + :param max_switch_times: The max_switch_times of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type max_switch_times: int + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type restoration_coordinate_type: TapiConnectivityCoordinateType + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type is_coordinated_switching_both_ends: bool + :param hold_off_time: The hold_off_time of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type hold_off_time: int + :param is_frozen: The is_frozen of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type is_frozen: bool + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type wait_to_revert_time: int + :param resilience_type: The resilience_type of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type resilience_type: TapiTopologyResilienceType + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + :param restore_priority: The restore_priority of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type restore_priority: int + :param reversion_mode: The reversion_mode of this TapiConnectivityResilienceConstraint. # noqa: E501 + :type reversion_mode: TapiConnectivityReversionMode + """ + self.swagger_types = { + 'is_lock_out': bool, + 'max_switch_times': int, + 'restoration_coordinate_type': TapiConnectivityCoordinateType, + 'is_coordinated_switching_both_ends': bool, + 'hold_off_time': int, + 'is_frozen': bool, + 'wait_to_revert_time': int, + 'resilience_type': TapiTopologyResilienceType, + 'preferred_restoration_layer': List[TapiCommonLayerProtocolName], + 'restore_priority': int, + 'reversion_mode': TapiConnectivityReversionMode + } + + self.attribute_map = { + 'is_lock_out': 'is-lock-out', + 'max_switch_times': 'max-switch-times', + 'restoration_coordinate_type': 'restoration-coordinate-type', + 'is_coordinated_switching_both_ends': 'is-coordinated-switching-both-ends', + 'hold_off_time': 'hold-off-time', + 'is_frozen': 'is-frozen', + 'wait_to_revert_time': 'wait-to-revert-time', + 'resilience_type': 'resilience-type', + 'preferred_restoration_layer': 'preferred-restoration-layer', + 'restore_priority': 'restore-priority', + 'reversion_mode': 'reversion-mode' + } + self._is_lock_out = is_lock_out + self._max_switch_times = max_switch_times + self._restoration_coordinate_type = restoration_coordinate_type + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + self._hold_off_time = hold_off_time + self._is_frozen = is_frozen + self._wait_to_revert_time = wait_to_revert_time + self._resilience_type = resilience_type + self._preferred_restoration_layer = preferred_restoration_layer + self._restore_priority = restore_priority + self._reversion_mode = reversion_mode + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityResilienceConstraint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ResilienceConstraint of this TapiConnectivityResilienceConstraint. # noqa: E501 + :rtype: TapiConnectivityResilienceConstraint + """ + return util.deserialize_model(dikt, cls) + + @property + def is_lock_out(self) -> bool: + """Gets the is_lock_out of this TapiConnectivityResilienceConstraint. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :return: The is_lock_out of this TapiConnectivityResilienceConstraint. + :rtype: bool + """ + return self._is_lock_out + + @is_lock_out.setter + def is_lock_out(self, is_lock_out: bool): + """Sets the is_lock_out of this TapiConnectivityResilienceConstraint. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :param is_lock_out: The is_lock_out of this TapiConnectivityResilienceConstraint. + :type is_lock_out: bool + """ + + self._is_lock_out = is_lock_out + + @property + def max_switch_times(self) -> int: + """Gets the max_switch_times of this TapiConnectivityResilienceConstraint. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :return: The max_switch_times of this TapiConnectivityResilienceConstraint. + :rtype: int + """ + return self._max_switch_times + + @max_switch_times.setter + def max_switch_times(self, max_switch_times: int): + """Sets the max_switch_times of this TapiConnectivityResilienceConstraint. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :param max_switch_times: The max_switch_times of this TapiConnectivityResilienceConstraint. + :type max_switch_times: int + """ + + self._max_switch_times = max_switch_times + + @property + def restoration_coordinate_type(self) -> TapiConnectivityCoordinateType: + """Gets the restoration_coordinate_type of this TapiConnectivityResilienceConstraint. + + + :return: The restoration_coordinate_type of this TapiConnectivityResilienceConstraint. + :rtype: TapiConnectivityCoordinateType + """ + return self._restoration_coordinate_type + + @restoration_coordinate_type.setter + def restoration_coordinate_type(self, restoration_coordinate_type: TapiConnectivityCoordinateType): + """Sets the restoration_coordinate_type of this TapiConnectivityResilienceConstraint. + + + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivityResilienceConstraint. + :type restoration_coordinate_type: TapiConnectivityCoordinateType + """ + + self._restoration_coordinate_type = restoration_coordinate_type + + @property + def is_coordinated_switching_both_ends(self) -> bool: + """Gets the is_coordinated_switching_both_ends of this TapiConnectivityResilienceConstraint. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :return: The is_coordinated_switching_both_ends of this TapiConnectivityResilienceConstraint. + :rtype: bool + """ + return self._is_coordinated_switching_both_ends + + @is_coordinated_switching_both_ends.setter + def is_coordinated_switching_both_ends(self, is_coordinated_switching_both_ends: bool): + """Sets the is_coordinated_switching_both_ends of this TapiConnectivityResilienceConstraint. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivityResilienceConstraint. + :type is_coordinated_switching_both_ends: bool + """ + + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + + @property + def hold_off_time(self) -> int: + """Gets the hold_off_time of this TapiConnectivityResilienceConstraint. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :return: The hold_off_time of this TapiConnectivityResilienceConstraint. + :rtype: int + """ + return self._hold_off_time + + @hold_off_time.setter + def hold_off_time(self, hold_off_time: int): + """Sets the hold_off_time of this TapiConnectivityResilienceConstraint. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :param hold_off_time: The hold_off_time of this TapiConnectivityResilienceConstraint. + :type hold_off_time: int + """ + + self._hold_off_time = hold_off_time + + @property + def is_frozen(self) -> bool: + """Gets the is_frozen of this TapiConnectivityResilienceConstraint. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :return: The is_frozen of this TapiConnectivityResilienceConstraint. + :rtype: bool + """ + return self._is_frozen + + @is_frozen.setter + def is_frozen(self, is_frozen: bool): + """Sets the is_frozen of this TapiConnectivityResilienceConstraint. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :param is_frozen: The is_frozen of this TapiConnectivityResilienceConstraint. + :type is_frozen: bool + """ + + self._is_frozen = is_frozen + + @property + def wait_to_revert_time(self) -> int: + """Gets the wait_to_revert_time of this TapiConnectivityResilienceConstraint. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :return: The wait_to_revert_time of this TapiConnectivityResilienceConstraint. + :rtype: int + """ + return self._wait_to_revert_time + + @wait_to_revert_time.setter + def wait_to_revert_time(self, wait_to_revert_time: int): + """Sets the wait_to_revert_time of this TapiConnectivityResilienceConstraint. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivityResilienceConstraint. + :type wait_to_revert_time: int + """ + + self._wait_to_revert_time = wait_to_revert_time + + @property + def resilience_type(self) -> TapiTopologyResilienceType: + """Gets the resilience_type of this TapiConnectivityResilienceConstraint. + + + :return: The resilience_type of this TapiConnectivityResilienceConstraint. + :rtype: TapiTopologyResilienceType + """ + return self._resilience_type + + @resilience_type.setter + def resilience_type(self, resilience_type: TapiTopologyResilienceType): + """Sets the resilience_type of this TapiConnectivityResilienceConstraint. + + + :param resilience_type: The resilience_type of this TapiConnectivityResilienceConstraint. + :type resilience_type: TapiTopologyResilienceType + """ + + self._resilience_type = resilience_type + + @property + def preferred_restoration_layer(self) -> List[TapiCommonLayerProtocolName]: + """Gets the preferred_restoration_layer of this TapiConnectivityResilienceConstraint. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :return: The preferred_restoration_layer of this TapiConnectivityResilienceConstraint. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._preferred_restoration_layer + + @preferred_restoration_layer.setter + def preferred_restoration_layer(self, preferred_restoration_layer: List[TapiCommonLayerProtocolName]): + """Sets the preferred_restoration_layer of this TapiConnectivityResilienceConstraint. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivityResilienceConstraint. + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + """ + + self._preferred_restoration_layer = preferred_restoration_layer + + @property + def restore_priority(self) -> int: + """Gets the restore_priority of this TapiConnectivityResilienceConstraint. + + none # noqa: E501 + + :return: The restore_priority of this TapiConnectivityResilienceConstraint. + :rtype: int + """ + return self._restore_priority + + @restore_priority.setter + def restore_priority(self, restore_priority: int): + """Sets the restore_priority of this TapiConnectivityResilienceConstraint. + + none # noqa: E501 + + :param restore_priority: The restore_priority of this TapiConnectivityResilienceConstraint. + :type restore_priority: int + """ + + self._restore_priority = restore_priority + + @property + def reversion_mode(self) -> TapiConnectivityReversionMode: + """Gets the reversion_mode of this TapiConnectivityResilienceConstraint. + + + :return: The reversion_mode of this TapiConnectivityResilienceConstraint. + :rtype: TapiConnectivityReversionMode + """ + return self._reversion_mode + + @reversion_mode.setter + def reversion_mode(self, reversion_mode: TapiConnectivityReversionMode): + """Sets the reversion_mode of this TapiConnectivityResilienceConstraint. + + + :param reversion_mode: The reversion_mode of this TapiConnectivityResilienceConstraint. + :type reversion_mode: TapiConnectivityReversionMode + """ + + self._reversion_mode = reversion_mode diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route.py new file mode 100644 index 0000000000000000000000000000000000000000..a005aa32b44d6f0ed694a0b6d7f95f047ded4b28 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route.py @@ -0,0 +1,150 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityResilienceRoute(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, priority: int=None, route_state: str=None): # noqa: E501 + """TapiConnectivityResilienceRoute - a model defined in Swagger + + :param name: The name of this TapiConnectivityResilienceRoute. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiConnectivityResilienceRoute. # noqa: E501 + :type local_id: str + :param priority: The priority of this TapiConnectivityResilienceRoute. # noqa: E501 + :type priority: int + :param route_state: The route_state of this TapiConnectivityResilienceRoute. # noqa: E501 + :type route_state: str + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'priority': int, + 'route_state': str + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'priority': 'priority', + 'route_state': 'route-state' + } + self._name = name + self._local_id = local_id + self._priority = priority + self._route_state = route_state + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityResilienceRoute': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ResilienceRoute of this TapiConnectivityResilienceRoute. # noqa: E501 + :rtype: TapiConnectivityResilienceRoute + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityResilienceRoute. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityResilienceRoute. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityResilienceRoute. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityResilienceRoute. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiConnectivityResilienceRoute. + + none # noqa: E501 + + :return: The local_id of this TapiConnectivityResilienceRoute. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiConnectivityResilienceRoute. + + none # noqa: E501 + + :param local_id: The local_id of this TapiConnectivityResilienceRoute. + :type local_id: str + """ + + self._local_id = local_id + + @property + def priority(self) -> int: + """Gets the priority of this TapiConnectivityResilienceRoute. + + Value of 0 (zero) means 'unspecified priority'. Highest priority is 1, sometimes referred as 'preferred' or 'main' or 'intended' route. 2 has lower priority than 1, 3 has lower priority than 2, etc. # noqa: E501 + + :return: The priority of this TapiConnectivityResilienceRoute. + :rtype: int + """ + return self._priority + + @priority.setter + def priority(self, priority: int): + """Sets the priority of this TapiConnectivityResilienceRoute. + + Value of 0 (zero) means 'unspecified priority'. Highest priority is 1, sometimes referred as 'preferred' or 'main' or 'intended' route. 2 has lower priority than 1, 3 has lower priority than 2, etc. # noqa: E501 + + :param priority: The priority of this TapiConnectivityResilienceRoute. + :type priority: int + """ + + self._priority = priority + + @property + def route_state(self) -> str: + """Gets the route_state of this TapiConnectivityResilienceRoute. + + Current information on the route selection. # noqa: E501 + + :return: The route_state of this TapiConnectivityResilienceRoute. + :rtype: str + """ + return self._route_state + + @route_state.setter + def route_state(self, route_state: str): + """Sets the route_state of this TapiConnectivityResilienceRoute. + + Current information on the route selection. # noqa: E501 + + :param route_state: The route_state of this TapiConnectivityResilienceRoute. + :type route_state: str + """ + + self._route_state = route_state diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..7c1e3af55f692d9a7585957ab2ecff68be4e3e24 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_resilience_route_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_resilience_route import TapiConnectivityResilienceRoute # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityResilienceRouteWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, resilience_route_pac: TapiConnectivityResilienceRoute=None): # noqa: E501 + """TapiConnectivityResilienceRouteWrapper - a model defined in Swagger + + :param resilience_route_pac: The resilience_route_pac of this TapiConnectivityResilienceRouteWrapper. # noqa: E501 + :type resilience_route_pac: TapiConnectivityResilienceRoute + """ + self.swagger_types = { + 'resilience_route_pac': TapiConnectivityResilienceRoute + } + + self.attribute_map = { + 'resilience_route_pac': 'resilience-route-pac' + } + self._resilience_route_pac = resilience_route_pac + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityResilienceRouteWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ResilienceRouteWrapper of this TapiConnectivityResilienceRouteWrapper. # noqa: E501 + :rtype: TapiConnectivityResilienceRouteWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def resilience_route_pac(self) -> TapiConnectivityResilienceRoute: + """Gets the resilience_route_pac of this TapiConnectivityResilienceRouteWrapper. + + + :return: The resilience_route_pac of this TapiConnectivityResilienceRouteWrapper. + :rtype: TapiConnectivityResilienceRoute + """ + return self._resilience_route_pac + + @resilience_route_pac.setter + def resilience_route_pac(self, resilience_route_pac: TapiConnectivityResilienceRoute): + """Sets the resilience_route_pac of this TapiConnectivityResilienceRouteWrapper. + + + :param resilience_route_pac: The resilience_route_pac of this TapiConnectivityResilienceRouteWrapper. + :type resilience_route_pac: TapiConnectivityResilienceRoute + """ + + self._resilience_route_pac = resilience_route_pac diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_reversion_mode.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_reversion_mode.py new file mode 100644 index 0000000000000000000000000000000000000000..8004b8293a895a9d32ecdd27b3642bf22fe5934b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_reversion_mode.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityReversionMode(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + REVERTIVE = "REVERTIVE" + NON_REVERTIVE = "NON-REVERTIVE" + def __init__(self): # noqa: E501 + """TapiConnectivityReversionMode - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityReversionMode': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ReversionMode of this TapiConnectivityReversionMode. # noqa: E501 + :rtype: TapiConnectivityReversionMode + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route.py new file mode 100644 index 0000000000000000000000000000000000000000..85768ee1727161a3741e38656d9d49fe9ee2e0e3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route.py @@ -0,0 +1,150 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_resilience_route import TapiConnectivityResilienceRoute # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityRoute(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, connection_end_point: List[TapiConnectivityConnectionEndPointRef]=None, resilience_route_pac: TapiConnectivityResilienceRoute=None): # noqa: E501 + """TapiConnectivityRoute - a model defined in Swagger + + :param name: The name of this TapiConnectivityRoute. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiConnectivityRoute. # noqa: E501 + :type local_id: str + :param connection_end_point: The connection_end_point of this TapiConnectivityRoute. # noqa: E501 + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + :param resilience_route_pac: The resilience_route_pac of this TapiConnectivityRoute. # noqa: E501 + :type resilience_route_pac: TapiConnectivityResilienceRoute + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'connection_end_point': List[TapiConnectivityConnectionEndPointRef], + 'resilience_route_pac': TapiConnectivityResilienceRoute + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'connection_end_point': 'connection-end-point', + 'resilience_route_pac': 'resilience-route-pac' + } + self._name = name + self._local_id = local_id + self._connection_end_point = connection_end_point + self._resilience_route_pac = resilience_route_pac + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityRoute': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.Route of this TapiConnectivityRoute. # noqa: E501 + :rtype: TapiConnectivityRoute + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivityRoute. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivityRoute. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivityRoute. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivityRoute. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiConnectivityRoute. + + none # noqa: E501 + + :return: The local_id of this TapiConnectivityRoute. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiConnectivityRoute. + + none # noqa: E501 + + :param local_id: The local_id of this TapiConnectivityRoute. + :type local_id: str + """ + + self._local_id = local_id + + @property + def connection_end_point(self) -> List[TapiConnectivityConnectionEndPointRef]: + """Gets the connection_end_point of this TapiConnectivityRoute. + + none # noqa: E501 + + :return: The connection_end_point of this TapiConnectivityRoute. + :rtype: List[TapiConnectivityConnectionEndPointRef] + """ + return self._connection_end_point + + @connection_end_point.setter + def connection_end_point(self, connection_end_point: List[TapiConnectivityConnectionEndPointRef]): + """Sets the connection_end_point of this TapiConnectivityRoute. + + none # noqa: E501 + + :param connection_end_point: The connection_end_point of this TapiConnectivityRoute. + :type connection_end_point: List[TapiConnectivityConnectionEndPointRef] + """ + + self._connection_end_point = connection_end_point + + @property + def resilience_route_pac(self) -> TapiConnectivityResilienceRoute: + """Gets the resilience_route_pac of this TapiConnectivityRoute. + + + :return: The resilience_route_pac of this TapiConnectivityRoute. + :rtype: TapiConnectivityResilienceRoute + """ + return self._resilience_route_pac + + @resilience_route_pac.setter + def resilience_route_pac(self, resilience_route_pac: TapiConnectivityResilienceRoute): + """Sets the resilience_route_pac of this TapiConnectivityRoute. + + + :param resilience_route_pac: The resilience_route_pac of this TapiConnectivityRoute. + :type resilience_route_pac: TapiConnectivityResilienceRoute + """ + + self._resilience_route_pac = resilience_route_pac diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..3c8e794f10d6ab135daf8c5bec387408285afdf3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityRouteRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_uuid: str=None, route_local_id: str=None): # noqa: E501 + """TapiConnectivityRouteRef - a model defined in Swagger + + :param connection_uuid: The connection_uuid of this TapiConnectivityRouteRef. # noqa: E501 + :type connection_uuid: str + :param route_local_id: The route_local_id of this TapiConnectivityRouteRef. # noqa: E501 + :type route_local_id: str + """ + self.swagger_types = { + 'connection_uuid': str, + 'route_local_id': str + } + + self.attribute_map = { + 'connection_uuid': 'connection-uuid', + 'route_local_id': 'route-local-id' + } + self._connection_uuid = connection_uuid + self._route_local_id = route_local_id + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityRouteRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.RouteRef of this TapiConnectivityRouteRef. # noqa: E501 + :rtype: TapiConnectivityRouteRef + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_uuid(self) -> str: + """Gets the connection_uuid of this TapiConnectivityRouteRef. + + none # noqa: E501 + + :return: The connection_uuid of this TapiConnectivityRouteRef. + :rtype: str + """ + return self._connection_uuid + + @connection_uuid.setter + def connection_uuid(self, connection_uuid: str): + """Sets the connection_uuid of this TapiConnectivityRouteRef. + + none # noqa: E501 + + :param connection_uuid: The connection_uuid of this TapiConnectivityRouteRef. + :type connection_uuid: str + """ + + self._connection_uuid = connection_uuid + + @property + def route_local_id(self) -> str: + """Gets the route_local_id of this TapiConnectivityRouteRef. + + none # noqa: E501 + + :return: The route_local_id of this TapiConnectivityRouteRef. + :rtype: str + """ + return self._route_local_id + + @route_local_id.setter + def route_local_id(self, route_local_id: str): + """Sets the route_local_id of this TapiConnectivityRouteRef. + + none # noqa: E501 + + :param route_local_id: The route_local_id of this TapiConnectivityRouteRef. + :type route_local_id: str + """ + + self._route_local_id = route_local_id diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..32de337b97f5437d9a447ae03aa2705f94e82166 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_route_ref import TapiConnectivityRouteRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityRouteRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, selected_route: TapiConnectivityRouteRef=None): # noqa: E501 + """TapiConnectivityRouteRefWrapper - a model defined in Swagger + + :param selected_route: The selected_route of this TapiConnectivityRouteRefWrapper. # noqa: E501 + :type selected_route: TapiConnectivityRouteRef + """ + self.swagger_types = { + 'selected_route': TapiConnectivityRouteRef + } + + self.attribute_map = { + 'selected_route': 'selected-route' + } + self._selected_route = selected_route + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityRouteRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.RouteRefWrapper of this TapiConnectivityRouteRefWrapper. # noqa: E501 + :rtype: TapiConnectivityRouteRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def selected_route(self) -> TapiConnectivityRouteRef: + """Gets the selected_route of this TapiConnectivityRouteRefWrapper. + + + :return: The selected_route of this TapiConnectivityRouteRefWrapper. + :rtype: TapiConnectivityRouteRef + """ + return self._selected_route + + @selected_route.setter + def selected_route(self, selected_route: TapiConnectivityRouteRef): + """Sets the selected_route of this TapiConnectivityRouteRefWrapper. + + + :param selected_route: The selected_route of this TapiConnectivityRouteRefWrapper. + :type selected_route: TapiConnectivityRouteRef + """ + + self._selected_route = selected_route diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..846bb16c72cbaf0e4d13eb37849abff4cc0b8065 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_route_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_route import TapiConnectivityRoute # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityRouteWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, route: TapiConnectivityRoute=None): # noqa: E501 + """TapiConnectivityRouteWrapper - a model defined in Swagger + + :param route: The route of this TapiConnectivityRouteWrapper. # noqa: E501 + :type route: TapiConnectivityRoute + """ + self.swagger_types = { + 'route': TapiConnectivityRoute + } + + self.attribute_map = { + 'route': 'route' + } + self._route = route + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityRouteWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.RouteWrapper of this TapiConnectivityRouteWrapper. # noqa: E501 + :rtype: TapiConnectivityRouteWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def route(self) -> TapiConnectivityRoute: + """Gets the route of this TapiConnectivityRouteWrapper. + + + :return: The route of this TapiConnectivityRouteWrapper. + :rtype: TapiConnectivityRoute + """ + return self._route + + @route.setter + def route(self, route: TapiConnectivityRoute): + """Sets the route of this TapiConnectivityRouteWrapper. + + + :param route: The route of this TapiConnectivityRouteWrapper. + :type route: TapiConnectivityRoute + """ + + self._route = route diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_control.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_control.py new file mode 100644 index 0000000000000000000000000000000000000000..12a0cef5a396a0df41b9ae2fde20948fbb71353d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_control.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivitySelectionControl(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + LOCK_OUT = "LOCK_OUT" + NORMAL = "NORMAL" + MANUAL = "MANUAL" + FORCED = "FORCED" + def __init__(self): # noqa: E501 + """TapiConnectivitySelectionControl - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySelectionControl': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SelectionControl of this TapiConnectivitySelectionControl. # noqa: E501 + :rtype: TapiConnectivitySelectionControl + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_reason.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_reason.py new file mode 100644 index 0000000000000000000000000000000000000000..2c20d3577365fcc314e587b6c0dab95185e01212 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_selection_reason.py @@ -0,0 +1,47 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivitySelectionReason(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + LOCKOUT = "LOCKOUT" + NORMAL = "NORMAL" + MANUAL = "MANUAL" + FORCED = "FORCED" + WAIT_TO_REVERT = "WAIT_TO_REVERT" + SIGNAL_DEGRADE = "SIGNAL_DEGRADE" + SIGNAL_FAIL = "SIGNAL_FAIL" + def __init__(self): # noqa: E501 + """TapiConnectivitySelectionReason - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySelectionReason': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SelectionReason of this TapiConnectivitySelectionReason. # noqa: E501 + :rtype: TapiConnectivitySelectionReason + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_service_type.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_service_type.py new file mode 100644 index 0000000000000000000000000000000000000000..ef342f8db50904a03f62b0b5340662107a78dd8a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_service_type.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiConnectivityServiceType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + POINT_TO_POINT_CONNECTIVITY = "POINT_TO_POINT_CONNECTIVITY" + POINT_TO_MULTIPOINT_CONNECTIVITY = "POINT_TO_MULTIPOINT_CONNECTIVITY" + MULTIPOINT_CONNECTIVITY = "MULTIPOINT_CONNECTIVITY" + ROOTED_MULTIPOINT_CONNECTIVITY = "ROOTED_MULTIPOINT_CONNECTIVITY" + def __init__(self): # noqa: E501 + """TapiConnectivityServiceType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityServiceType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.ServiceType of this TapiConnectivityServiceType. # noqa: E501 + :rtype: TapiConnectivityServiceType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch.py new file mode 100644 index 0000000000000000000000000000000000000000..564ef1b1931130cdc24b09f01a1c08d420800dee --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch.py @@ -0,0 +1,233 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref import TapiConnectivityConnectionEndPointRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_route_ref import TapiConnectivityRouteRef # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_selection_control import TapiConnectivitySelectionControl # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_selection_reason import TapiConnectivitySelectionReason # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitch(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, selected_connection_end_point: List[TapiConnectivityConnectionEndPointRef]=None, selected_route: List[TapiConnectivityRouteRef]=None, selection_control: TapiConnectivitySelectionControl=None, selection_reason: TapiConnectivitySelectionReason=None, switch_direction: TapiCommonPortDirection=None): # noqa: E501 + """TapiConnectivitySwitch - a model defined in Swagger + + :param name: The name of this TapiConnectivitySwitch. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiConnectivitySwitch. # noqa: E501 + :type local_id: str + :param selected_connection_end_point: The selected_connection_end_point of this TapiConnectivitySwitch. # noqa: E501 + :type selected_connection_end_point: List[TapiConnectivityConnectionEndPointRef] + :param selected_route: The selected_route of this TapiConnectivitySwitch. # noqa: E501 + :type selected_route: List[TapiConnectivityRouteRef] + :param selection_control: The selection_control of this TapiConnectivitySwitch. # noqa: E501 + :type selection_control: TapiConnectivitySelectionControl + :param selection_reason: The selection_reason of this TapiConnectivitySwitch. # noqa: E501 + :type selection_reason: TapiConnectivitySelectionReason + :param switch_direction: The switch_direction of this TapiConnectivitySwitch. # noqa: E501 + :type switch_direction: TapiCommonPortDirection + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'selected_connection_end_point': List[TapiConnectivityConnectionEndPointRef], + 'selected_route': List[TapiConnectivityRouteRef], + 'selection_control': TapiConnectivitySelectionControl, + 'selection_reason': TapiConnectivitySelectionReason, + 'switch_direction': TapiCommonPortDirection + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'selected_connection_end_point': 'selected-connection-end-point', + 'selected_route': 'selected-route', + 'selection_control': 'selection-control', + 'selection_reason': 'selection-reason', + 'switch_direction': 'switch-direction' + } + self._name = name + self._local_id = local_id + self._selected_connection_end_point = selected_connection_end_point + self._selected_route = selected_route + self._selection_control = selection_control + self._selection_reason = selection_reason + self._switch_direction = switch_direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitch': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.Switch of this TapiConnectivitySwitch. # noqa: E501 + :rtype: TapiConnectivitySwitch + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivitySwitch. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivitySwitch. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivitySwitch. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivitySwitch. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiConnectivitySwitch. + + none # noqa: E501 + + :return: The local_id of this TapiConnectivitySwitch. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiConnectivitySwitch. + + none # noqa: E501 + + :param local_id: The local_id of this TapiConnectivitySwitch. + :type local_id: str + """ + + self._local_id = local_id + + @property + def selected_connection_end_point(self) -> List[TapiConnectivityConnectionEndPointRef]: + """Gets the selected_connection_end_point of this TapiConnectivitySwitch. + + none # noqa: E501 + + :return: The selected_connection_end_point of this TapiConnectivitySwitch. + :rtype: List[TapiConnectivityConnectionEndPointRef] + """ + return self._selected_connection_end_point + + @selected_connection_end_point.setter + def selected_connection_end_point(self, selected_connection_end_point: List[TapiConnectivityConnectionEndPointRef]): + """Sets the selected_connection_end_point of this TapiConnectivitySwitch. + + none # noqa: E501 + + :param selected_connection_end_point: The selected_connection_end_point of this TapiConnectivitySwitch. + :type selected_connection_end_point: List[TapiConnectivityConnectionEndPointRef] + """ + + self._selected_connection_end_point = selected_connection_end_point + + @property + def selected_route(self) -> List[TapiConnectivityRouteRef]: + """Gets the selected_route of this TapiConnectivitySwitch. + + none # noqa: E501 + + :return: The selected_route of this TapiConnectivitySwitch. + :rtype: List[TapiConnectivityRouteRef] + """ + return self._selected_route + + @selected_route.setter + def selected_route(self, selected_route: List[TapiConnectivityRouteRef]): + """Sets the selected_route of this TapiConnectivitySwitch. + + none # noqa: E501 + + :param selected_route: The selected_route of this TapiConnectivitySwitch. + :type selected_route: List[TapiConnectivityRouteRef] + """ + + self._selected_route = selected_route + + @property + def selection_control(self) -> TapiConnectivitySelectionControl: + """Gets the selection_control of this TapiConnectivitySwitch. + + + :return: The selection_control of this TapiConnectivitySwitch. + :rtype: TapiConnectivitySelectionControl + """ + return self._selection_control + + @selection_control.setter + def selection_control(self, selection_control: TapiConnectivitySelectionControl): + """Sets the selection_control of this TapiConnectivitySwitch. + + + :param selection_control: The selection_control of this TapiConnectivitySwitch. + :type selection_control: TapiConnectivitySelectionControl + """ + + self._selection_control = selection_control + + @property + def selection_reason(self) -> TapiConnectivitySelectionReason: + """Gets the selection_reason of this TapiConnectivitySwitch. + + + :return: The selection_reason of this TapiConnectivitySwitch. + :rtype: TapiConnectivitySelectionReason + """ + return self._selection_reason + + @selection_reason.setter + def selection_reason(self, selection_reason: TapiConnectivitySelectionReason): + """Sets the selection_reason of this TapiConnectivitySwitch. + + + :param selection_reason: The selection_reason of this TapiConnectivitySwitch. + :type selection_reason: TapiConnectivitySelectionReason + """ + + self._selection_reason = selection_reason + + @property + def switch_direction(self) -> TapiCommonPortDirection: + """Gets the switch_direction of this TapiConnectivitySwitch. + + + :return: The switch_direction of this TapiConnectivitySwitch. + :rtype: TapiCommonPortDirection + """ + return self._switch_direction + + @switch_direction.setter + def switch_direction(self, switch_direction: TapiCommonPortDirection): + """Sets the switch_direction of this TapiConnectivitySwitch. + + + :param switch_direction: The switch_direction of this TapiConnectivitySwitch. + :type switch_direction: TapiCommonPortDirection + """ + + self._switch_direction = switch_direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control.py new file mode 100644 index 0000000000000000000000000000000000000000..72150962af704593bb19d8a865cea2c14d955fda --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control.py @@ -0,0 +1,459 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_coordinate_type import TapiConnectivityCoordinateType # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_resilience_constraint import TapiConnectivityResilienceConstraint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_reversion_mode import TapiConnectivityReversionMode # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_switch import TapiConnectivitySwitch # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_switch_control_ref import TapiConnectivitySwitchControlRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitchControl(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, is_lock_out: bool=False, max_switch_times: int=None, restoration_coordinate_type: TapiConnectivityCoordinateType=None, is_coordinated_switching_both_ends: bool=False, hold_off_time: int=None, is_frozen: bool=False, wait_to_revert_time: int=15, resilience_type: TapiTopologyResilienceType=None, preferred_restoration_layer: List[TapiCommonLayerProtocolName]=None, restore_priority: int=None, reversion_mode: TapiConnectivityReversionMode=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, sub_switch_control: List[TapiConnectivitySwitchControlRef]=None, switch: List[TapiConnectivitySwitch]=None): # noqa: E501 + """TapiConnectivitySwitchControl - a model defined in Swagger + + :param is_lock_out: The is_lock_out of this TapiConnectivitySwitchControl. # noqa: E501 + :type is_lock_out: bool + :param max_switch_times: The max_switch_times of this TapiConnectivitySwitchControl. # noqa: E501 + :type max_switch_times: int + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivitySwitchControl. # noqa: E501 + :type restoration_coordinate_type: TapiConnectivityCoordinateType + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivitySwitchControl. # noqa: E501 + :type is_coordinated_switching_both_ends: bool + :param hold_off_time: The hold_off_time of this TapiConnectivitySwitchControl. # noqa: E501 + :type hold_off_time: int + :param is_frozen: The is_frozen of this TapiConnectivitySwitchControl. # noqa: E501 + :type is_frozen: bool + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivitySwitchControl. # noqa: E501 + :type wait_to_revert_time: int + :param resilience_type: The resilience_type of this TapiConnectivitySwitchControl. # noqa: E501 + :type resilience_type: TapiTopologyResilienceType + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivitySwitchControl. # noqa: E501 + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + :param restore_priority: The restore_priority of this TapiConnectivitySwitchControl. # noqa: E501 + :type restore_priority: int + :param reversion_mode: The reversion_mode of this TapiConnectivitySwitchControl. # noqa: E501 + :type reversion_mode: TapiConnectivityReversionMode + :param name: The name of this TapiConnectivitySwitchControl. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiConnectivitySwitchControl. # noqa: E501 + :type uuid: str + :param sub_switch_control: The sub_switch_control of this TapiConnectivitySwitchControl. # noqa: E501 + :type sub_switch_control: List[TapiConnectivitySwitchControlRef] + :param switch: The switch of this TapiConnectivitySwitchControl. # noqa: E501 + :type switch: List[TapiConnectivitySwitch] + """ + self.swagger_types = { + 'is_lock_out': bool, + 'max_switch_times': int, + 'restoration_coordinate_type': TapiConnectivityCoordinateType, + 'is_coordinated_switching_both_ends': bool, + 'hold_off_time': int, + 'is_frozen': bool, + 'wait_to_revert_time': int, + 'resilience_type': TapiTopologyResilienceType, + 'preferred_restoration_layer': List[TapiCommonLayerProtocolName], + 'restore_priority': int, + 'reversion_mode': TapiConnectivityReversionMode, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'sub_switch_control': List[TapiConnectivitySwitchControlRef], + 'switch': List[TapiConnectivitySwitch] + } + + self.attribute_map = { + 'is_lock_out': 'is-lock-out', + 'max_switch_times': 'max-switch-times', + 'restoration_coordinate_type': 'restoration-coordinate-type', + 'is_coordinated_switching_both_ends': 'is-coordinated-switching-both-ends', + 'hold_off_time': 'hold-off-time', + 'is_frozen': 'is-frozen', + 'wait_to_revert_time': 'wait-to-revert-time', + 'resilience_type': 'resilience-type', + 'preferred_restoration_layer': 'preferred-restoration-layer', + 'restore_priority': 'restore-priority', + 'reversion_mode': 'reversion-mode', + 'name': 'name', + 'uuid': 'uuid', + 'sub_switch_control': 'sub-switch-control', + 'switch': 'switch' + } + self._is_lock_out = is_lock_out + self._max_switch_times = max_switch_times + self._restoration_coordinate_type = restoration_coordinate_type + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + self._hold_off_time = hold_off_time + self._is_frozen = is_frozen + self._wait_to_revert_time = wait_to_revert_time + self._resilience_type = resilience_type + self._preferred_restoration_layer = preferred_restoration_layer + self._restore_priority = restore_priority + self._reversion_mode = reversion_mode + self._name = name + self._uuid = uuid + self._sub_switch_control = sub_switch_control + self._switch = switch + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitchControl': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SwitchControl of this TapiConnectivitySwitchControl. # noqa: E501 + :rtype: TapiConnectivitySwitchControl + """ + return util.deserialize_model(dikt, cls) + + @property + def is_lock_out(self) -> bool: + """Gets the is_lock_out of this TapiConnectivitySwitchControl. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :return: The is_lock_out of this TapiConnectivitySwitchControl. + :rtype: bool + """ + return self._is_lock_out + + @is_lock_out.setter + def is_lock_out(self, is_lock_out: bool): + """Sets the is_lock_out of this TapiConnectivitySwitchControl. + + The resource is configured to temporarily not be available for use in the protection scheme(s) it is part of. This overrides all other protection control states including forced. If the item is locked out then it cannot be used under any circumstances. Note: Only relevant when part of a protection scheme. # noqa: E501 + + :param is_lock_out: The is_lock_out of this TapiConnectivitySwitchControl. + :type is_lock_out: bool + """ + + self._is_lock_out = is_lock_out + + @property + def max_switch_times(self) -> int: + """Gets the max_switch_times of this TapiConnectivitySwitchControl. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :return: The max_switch_times of this TapiConnectivitySwitchControl. + :rtype: int + """ + return self._max_switch_times + + @max_switch_times.setter + def max_switch_times(self, max_switch_times: int): + """Sets the max_switch_times of this TapiConnectivitySwitchControl. + + Used to limit the maximum swtich times. When work fault disappears , and traffic return to the original work path, switch counter reset. # noqa: E501 + + :param max_switch_times: The max_switch_times of this TapiConnectivitySwitchControl. + :type max_switch_times: int + """ + + self._max_switch_times = max_switch_times + + @property + def restoration_coordinate_type(self) -> TapiConnectivityCoordinateType: + """Gets the restoration_coordinate_type of this TapiConnectivitySwitchControl. + + + :return: The restoration_coordinate_type of this TapiConnectivitySwitchControl. + :rtype: TapiConnectivityCoordinateType + """ + return self._restoration_coordinate_type + + @restoration_coordinate_type.setter + def restoration_coordinate_type(self, restoration_coordinate_type: TapiConnectivityCoordinateType): + """Sets the restoration_coordinate_type of this TapiConnectivitySwitchControl. + + + :param restoration_coordinate_type: The restoration_coordinate_type of this TapiConnectivitySwitchControl. + :type restoration_coordinate_type: TapiConnectivityCoordinateType + """ + + self._restoration_coordinate_type = restoration_coordinate_type + + @property + def is_coordinated_switching_both_ends(self) -> bool: + """Gets the is_coordinated_switching_both_ends of this TapiConnectivitySwitchControl. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :return: The is_coordinated_switching_both_ends of this TapiConnectivitySwitchControl. + :rtype: bool + """ + return self._is_coordinated_switching_both_ends + + @is_coordinated_switching_both_ends.setter + def is_coordinated_switching_both_ends(self, is_coordinated_switching_both_ends: bool): + """Sets the is_coordinated_switching_both_ends of this TapiConnectivitySwitchControl. + + Is operating such that switching at both ends of each flow acorss the FC is coordinated at both ingress and egress ends. # noqa: E501 + + :param is_coordinated_switching_both_ends: The is_coordinated_switching_both_ends of this TapiConnectivitySwitchControl. + :type is_coordinated_switching_both_ends: bool + """ + + self._is_coordinated_switching_both_ends = is_coordinated_switching_both_ends + + @property + def hold_off_time(self) -> int: + """Gets the hold_off_time of this TapiConnectivitySwitchControl. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :return: The hold_off_time of this TapiConnectivitySwitchControl. + :rtype: int + """ + return self._hold_off_time + + @hold_off_time.setter + def hold_off_time(self, hold_off_time: int): + """Sets the hold_off_time of this TapiConnectivitySwitchControl. + + This attribute indicates the time, in milliseconds, between declaration of signal degrade or signal fail, and the initialization of the protection switching algorithm. # noqa: E501 + + :param hold_off_time: The hold_off_time of this TapiConnectivitySwitchControl. + :type hold_off_time: int + """ + + self._hold_off_time = hold_off_time + + @property + def is_frozen(self) -> bool: + """Gets the is_frozen of this TapiConnectivitySwitchControl. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :return: The is_frozen of this TapiConnectivitySwitchControl. + :rtype: bool + """ + return self._is_frozen + + @is_frozen.setter + def is_frozen(self, is_frozen: bool): + """Sets the is_frozen of this TapiConnectivitySwitchControl. + + Temporarily prevents any switch action to be taken and, as such, freezes the current state. Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored. All administrative controls of any aspect of protection are rejected. # noqa: E501 + + :param is_frozen: The is_frozen of this TapiConnectivitySwitchControl. + :type is_frozen: bool + """ + + self._is_frozen = is_frozen + + @property + def wait_to_revert_time(self) -> int: + """Gets the wait_to_revert_time of this TapiConnectivitySwitchControl. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :return: The wait_to_revert_time of this TapiConnectivitySwitchControl. + :rtype: int + """ + return self._wait_to_revert_time + + @wait_to_revert_time.setter + def wait_to_revert_time(self, wait_to_revert_time: int): + """Sets the wait_to_revert_time of this TapiConnectivitySwitchControl. + + If the protection system is revertive, this attribute specifies the time, in minutes, to wait after a fault clears on a higher priority (preferred) resource before reverting to the preferred resource. # noqa: E501 + + :param wait_to_revert_time: The wait_to_revert_time of this TapiConnectivitySwitchControl. + :type wait_to_revert_time: int + """ + + self._wait_to_revert_time = wait_to_revert_time + + @property + def resilience_type(self) -> TapiTopologyResilienceType: + """Gets the resilience_type of this TapiConnectivitySwitchControl. + + + :return: The resilience_type of this TapiConnectivitySwitchControl. + :rtype: TapiTopologyResilienceType + """ + return self._resilience_type + + @resilience_type.setter + def resilience_type(self, resilience_type: TapiTopologyResilienceType): + """Sets the resilience_type of this TapiConnectivitySwitchControl. + + + :param resilience_type: The resilience_type of this TapiConnectivitySwitchControl. + :type resilience_type: TapiTopologyResilienceType + """ + + self._resilience_type = resilience_type + + @property + def preferred_restoration_layer(self) -> List[TapiCommonLayerProtocolName]: + """Gets the preferred_restoration_layer of this TapiConnectivitySwitchControl. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :return: The preferred_restoration_layer of this TapiConnectivitySwitchControl. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._preferred_restoration_layer + + @preferred_restoration_layer.setter + def preferred_restoration_layer(self, preferred_restoration_layer: List[TapiCommonLayerProtocolName]): + """Sets the preferred_restoration_layer of this TapiConnectivitySwitchControl. + + Indicate which layer this resilience parameters package configured for. # noqa: E501 + + :param preferred_restoration_layer: The preferred_restoration_layer of this TapiConnectivitySwitchControl. + :type preferred_restoration_layer: List[TapiCommonLayerProtocolName] + """ + + self._preferred_restoration_layer = preferred_restoration_layer + + @property + def restore_priority(self) -> int: + """Gets the restore_priority of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :return: The restore_priority of this TapiConnectivitySwitchControl. + :rtype: int + """ + return self._restore_priority + + @restore_priority.setter + def restore_priority(self, restore_priority: int): + """Sets the restore_priority of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :param restore_priority: The restore_priority of this TapiConnectivitySwitchControl. + :type restore_priority: int + """ + + self._restore_priority = restore_priority + + @property + def reversion_mode(self) -> TapiConnectivityReversionMode: + """Gets the reversion_mode of this TapiConnectivitySwitchControl. + + + :return: The reversion_mode of this TapiConnectivitySwitchControl. + :rtype: TapiConnectivityReversionMode + """ + return self._reversion_mode + + @reversion_mode.setter + def reversion_mode(self, reversion_mode: TapiConnectivityReversionMode): + """Sets the reversion_mode of this TapiConnectivitySwitchControl. + + + :param reversion_mode: The reversion_mode of this TapiConnectivitySwitchControl. + :type reversion_mode: TapiConnectivityReversionMode + """ + + self._reversion_mode = reversion_mode + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiConnectivitySwitchControl. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiConnectivitySwitchControl. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiConnectivitySwitchControl. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiConnectivitySwitchControl. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiConnectivitySwitchControl. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiConnectivitySwitchControl. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiConnectivitySwitchControl. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiConnectivitySwitchControl. + :type uuid: str + """ + + self._uuid = uuid + + @property + def sub_switch_control(self) -> List[TapiConnectivitySwitchControlRef]: + """Gets the sub_switch_control of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :return: The sub_switch_control of this TapiConnectivitySwitchControl. + :rtype: List[TapiConnectivitySwitchControlRef] + """ + return self._sub_switch_control + + @sub_switch_control.setter + def sub_switch_control(self, sub_switch_control: List[TapiConnectivitySwitchControlRef]): + """Sets the sub_switch_control of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :param sub_switch_control: The sub_switch_control of this TapiConnectivitySwitchControl. + :type sub_switch_control: List[TapiConnectivitySwitchControlRef] + """ + + self._sub_switch_control = sub_switch_control + + @property + def switch(self) -> List[TapiConnectivitySwitch]: + """Gets the switch of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :return: The switch of this TapiConnectivitySwitchControl. + :rtype: List[TapiConnectivitySwitch] + """ + return self._switch + + @switch.setter + def switch(self, switch: List[TapiConnectivitySwitch]): + """Sets the switch of this TapiConnectivitySwitchControl. + + none # noqa: E501 + + :param switch: The switch of this TapiConnectivitySwitchControl. + :type switch: List[TapiConnectivitySwitch] + """ + + self._switch = switch diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..6167745852ce3c81c4818103d42d2a6271abb83b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connection_ref import TapiConnectivityConnectionRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitchControlRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_uuid: str=None, switch_control_uuid: str=None): # noqa: E501 + """TapiConnectivitySwitchControlRef - a model defined in Swagger + + :param connection_uuid: The connection_uuid of this TapiConnectivitySwitchControlRef. # noqa: E501 + :type connection_uuid: str + :param switch_control_uuid: The switch_control_uuid of this TapiConnectivitySwitchControlRef. # noqa: E501 + :type switch_control_uuid: str + """ + self.swagger_types = { + 'connection_uuid': str, + 'switch_control_uuid': str + } + + self.attribute_map = { + 'connection_uuid': 'connection-uuid', + 'switch_control_uuid': 'switch-control-uuid' + } + self._connection_uuid = connection_uuid + self._switch_control_uuid = switch_control_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitchControlRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SwitchControlRef of this TapiConnectivitySwitchControlRef. # noqa: E501 + :rtype: TapiConnectivitySwitchControlRef + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_uuid(self) -> str: + """Gets the connection_uuid of this TapiConnectivitySwitchControlRef. + + none # noqa: E501 + + :return: The connection_uuid of this TapiConnectivitySwitchControlRef. + :rtype: str + """ + return self._connection_uuid + + @connection_uuid.setter + def connection_uuid(self, connection_uuid: str): + """Sets the connection_uuid of this TapiConnectivitySwitchControlRef. + + none # noqa: E501 + + :param connection_uuid: The connection_uuid of this TapiConnectivitySwitchControlRef. + :type connection_uuid: str + """ + + self._connection_uuid = connection_uuid + + @property + def switch_control_uuid(self) -> str: + """Gets the switch_control_uuid of this TapiConnectivitySwitchControlRef. + + none # noqa: E501 + + :return: The switch_control_uuid of this TapiConnectivitySwitchControlRef. + :rtype: str + """ + return self._switch_control_uuid + + @switch_control_uuid.setter + def switch_control_uuid(self, switch_control_uuid: str): + """Sets the switch_control_uuid of this TapiConnectivitySwitchControlRef. + + none # noqa: E501 + + :param switch_control_uuid: The switch_control_uuid of this TapiConnectivitySwitchControlRef. + :type switch_control_uuid: str + """ + + self._switch_control_uuid = switch_control_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..9e6f183b20f9bcedbd34bab0865d22d567d94536 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_switch_control_ref import TapiConnectivitySwitchControlRef # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitchControlRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, sub_switch_control: TapiConnectivitySwitchControlRef=None): # noqa: E501 + """TapiConnectivitySwitchControlRefWrapper - a model defined in Swagger + + :param sub_switch_control: The sub_switch_control of this TapiConnectivitySwitchControlRefWrapper. # noqa: E501 + :type sub_switch_control: TapiConnectivitySwitchControlRef + """ + self.swagger_types = { + 'sub_switch_control': TapiConnectivitySwitchControlRef + } + + self.attribute_map = { + 'sub_switch_control': 'sub-switch-control' + } + self._sub_switch_control = sub_switch_control + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitchControlRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SwitchControlRefWrapper of this TapiConnectivitySwitchControlRefWrapper. # noqa: E501 + :rtype: TapiConnectivitySwitchControlRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def sub_switch_control(self) -> TapiConnectivitySwitchControlRef: + """Gets the sub_switch_control of this TapiConnectivitySwitchControlRefWrapper. + + + :return: The sub_switch_control of this TapiConnectivitySwitchControlRefWrapper. + :rtype: TapiConnectivitySwitchControlRef + """ + return self._sub_switch_control + + @sub_switch_control.setter + def sub_switch_control(self, sub_switch_control: TapiConnectivitySwitchControlRef): + """Sets the sub_switch_control of this TapiConnectivitySwitchControlRefWrapper. + + + :param sub_switch_control: The sub_switch_control of this TapiConnectivitySwitchControlRefWrapper. + :type sub_switch_control: TapiConnectivitySwitchControlRef + """ + + self._sub_switch_control = sub_switch_control diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..993504e2431dfe2c8bf4587767e842a85789acc8 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_control_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_switch_control import TapiConnectivitySwitchControl # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitchControlWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, switch_control: TapiConnectivitySwitchControl=None): # noqa: E501 + """TapiConnectivitySwitchControlWrapper - a model defined in Swagger + + :param switch_control: The switch_control of this TapiConnectivitySwitchControlWrapper. # noqa: E501 + :type switch_control: TapiConnectivitySwitchControl + """ + self.swagger_types = { + 'switch_control': TapiConnectivitySwitchControl + } + + self.attribute_map = { + 'switch_control': 'switch-control' + } + self._switch_control = switch_control + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitchControlWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SwitchControlWrapper of this TapiConnectivitySwitchControlWrapper. # noqa: E501 + :rtype: TapiConnectivitySwitchControlWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def switch_control(self) -> TapiConnectivitySwitchControl: + """Gets the switch_control of this TapiConnectivitySwitchControlWrapper. + + + :return: The switch_control of this TapiConnectivitySwitchControlWrapper. + :rtype: TapiConnectivitySwitchControl + """ + return self._switch_control + + @switch_control.setter + def switch_control(self, switch_control: TapiConnectivitySwitchControl): + """Sets the switch_control of this TapiConnectivitySwitchControlWrapper. + + + :param switch_control: The switch_control of this TapiConnectivitySwitchControlWrapper. + :type switch_control: TapiConnectivitySwitchControl + """ + + self._switch_control = switch_control diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..52a2166bc8e4ceb0fe372ec40953c48c370ebc8a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_switch_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_switch import TapiConnectivitySwitch # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivitySwitchWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, switch: TapiConnectivitySwitch=None): # noqa: E501 + """TapiConnectivitySwitchWrapper - a model defined in Swagger + + :param switch: The switch of this TapiConnectivitySwitchWrapper. # noqa: E501 + :type switch: TapiConnectivitySwitch + """ + self.swagger_types = { + 'switch': TapiConnectivitySwitch + } + + self.attribute_map = { + 'switch': 'switch' + } + self._switch = switch + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivitySwitchWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.SwitchWrapper of this TapiConnectivitySwitchWrapper. # noqa: E501 + :rtype: TapiConnectivitySwitchWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def switch(self) -> TapiConnectivitySwitch: + """Gets the switch of this TapiConnectivitySwitchWrapper. + + + :return: The switch of this TapiConnectivitySwitchWrapper. + :rtype: TapiConnectivitySwitch + """ + return self._switch + + @switch.setter + def switch(self, switch: TapiConnectivitySwitch): + """Sets the switch of this TapiConnectivitySwitchWrapper. + + + :param switch: The switch of this TapiConnectivitySwitchWrapper. + :type switch: TapiConnectivitySwitch + """ + + self._switch = switch diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_update_connectivity_service.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_update_connectivity_service.py new file mode 100644 index 0000000000000000000000000000000000000000..3a80b938b4d68cf6d7de12c066f7e3ee50a862fe --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_update_connectivity_service.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_updateconnectivityservice_output import TapiConnectivityUpdateconnectivityserviceOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityUpdateConnectivityService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiConnectivityUpdateconnectivityserviceOutput=None): # noqa: E501 + """TapiConnectivityUpdateConnectivityService - a model defined in Swagger + + :param output: The output of this TapiConnectivityUpdateConnectivityService. # noqa: E501 + :type output: TapiConnectivityUpdateconnectivityserviceOutput + """ + self.swagger_types = { + 'output': TapiConnectivityUpdateconnectivityserviceOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityUpdateConnectivityService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.UpdateConnectivityService of this TapiConnectivityUpdateConnectivityService. # noqa: E501 + :rtype: TapiConnectivityUpdateConnectivityService + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiConnectivityUpdateconnectivityserviceOutput: + """Gets the output of this TapiConnectivityUpdateConnectivityService. + + + :return: The output of this TapiConnectivityUpdateConnectivityService. + :rtype: TapiConnectivityUpdateconnectivityserviceOutput + """ + return self._output + + @output.setter + def output(self, output: TapiConnectivityUpdateconnectivityserviceOutput): + """Sets the output of this TapiConnectivityUpdateConnectivityService. + + + :param output: The output of this TapiConnectivityUpdateConnectivityService. + :type output: TapiConnectivityUpdateconnectivityserviceOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..d871c9b8e20488b37de02be6d2ee0e441f26c5eb --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_input.py @@ -0,0 +1,229 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_constraint import TapiConnectivityConnectivityConstraint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point import TapiConnectivityConnectivityServiceEndPoint # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_resilience_constraint import TapiConnectivityResilienceConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityUpdateconnectivityserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service_id_or_name: str=None, topology_constraint: TapiPathComputationTopologyConstraint=None, end_point: List[TapiConnectivityConnectivityServiceEndPoint]=None, resilience_constraint: TapiConnectivityResilienceConstraint=None, routing_constraint: TapiPathComputationRoutingConstraint=None, state: str=None, connectivity_constraint: TapiConnectivityConnectivityConstraint=None): # noqa: E501 + """TapiConnectivityUpdateconnectivityserviceInput - a model defined in Swagger + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type service_id_or_name: str + :param topology_constraint: The topology_constraint of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type topology_constraint: TapiPathComputationTopologyConstraint + :param end_point: The end_point of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + :param resilience_constraint: The resilience_constraint of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type resilience_constraint: TapiConnectivityResilienceConstraint + :param routing_constraint: The routing_constraint of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param state: The state of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type state: str + :param connectivity_constraint: The connectivity_constraint of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :type connectivity_constraint: TapiConnectivityConnectivityConstraint + """ + self.swagger_types = { + 'service_id_or_name': str, + 'topology_constraint': TapiPathComputationTopologyConstraint, + 'end_point': List[TapiConnectivityConnectivityServiceEndPoint], + 'resilience_constraint': TapiConnectivityResilienceConstraint, + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'state': str, + 'connectivity_constraint': TapiConnectivityConnectivityConstraint + } + + self.attribute_map = { + 'service_id_or_name': 'service-id-or-name', + 'topology_constraint': 'topology-constraint', + 'end_point': 'end-point', + 'resilience_constraint': 'resilience-constraint', + 'routing_constraint': 'routing-constraint', + 'state': 'state', + 'connectivity_constraint': 'connectivity-constraint' + } + self._service_id_or_name = service_id_or_name + self._topology_constraint = topology_constraint + self._end_point = end_point + self._resilience_constraint = resilience_constraint + self._routing_constraint = routing_constraint + self._state = state + self._connectivity_constraint = connectivity_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityUpdateconnectivityserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.updateconnectivityservice.Input of this TapiConnectivityUpdateconnectivityserviceInput. # noqa: E501 + :rtype: TapiConnectivityUpdateconnectivityserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def service_id_or_name(self) -> str: + """Gets the service_id_or_name of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :return: The service_id_or_name of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: str + """ + return self._service_id_or_name + + @service_id_or_name.setter + def service_id_or_name(self, service_id_or_name: str): + """Sets the service_id_or_name of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :param service_id_or_name: The service_id_or_name of this TapiConnectivityUpdateconnectivityserviceInput. + :type service_id_or_name: str + """ + + self._service_id_or_name = service_id_or_name + + @property + def topology_constraint(self) -> TapiPathComputationTopologyConstraint: + """Gets the topology_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :return: The topology_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: TapiPathComputationTopologyConstraint + """ + return self._topology_constraint + + @topology_constraint.setter + def topology_constraint(self, topology_constraint: TapiPathComputationTopologyConstraint): + """Sets the topology_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :param topology_constraint: The topology_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + + self._topology_constraint = topology_constraint + + @property + def end_point(self) -> List[TapiConnectivityConnectivityServiceEndPoint]: + """Gets the end_point of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :return: The end_point of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: List[TapiConnectivityConnectivityServiceEndPoint] + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: List[TapiConnectivityConnectivityServiceEndPoint]): + """Sets the end_point of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :param end_point: The end_point of this TapiConnectivityUpdateconnectivityserviceInput. + :type end_point: List[TapiConnectivityConnectivityServiceEndPoint] + """ + + self._end_point = end_point + + @property + def resilience_constraint(self) -> TapiConnectivityResilienceConstraint: + """Gets the resilience_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :return: The resilience_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: TapiConnectivityResilienceConstraint + """ + return self._resilience_constraint + + @resilience_constraint.setter + def resilience_constraint(self, resilience_constraint: TapiConnectivityResilienceConstraint): + """Sets the resilience_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :param resilience_constraint: The resilience_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :type resilience_constraint: TapiConnectivityResilienceConstraint + """ + + self._resilience_constraint = resilience_constraint + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :return: The routing_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :param routing_constraint: The routing_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def state(self) -> str: + """Gets the state of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :return: The state of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: str + """ + return self._state + + @state.setter + def state(self, state: str): + """Sets the state of this TapiConnectivityUpdateconnectivityserviceInput. + + none # noqa: E501 + + :param state: The state of this TapiConnectivityUpdateconnectivityserviceInput. + :type state: str + """ + + self._state = state + + @property + def connectivity_constraint(self) -> TapiConnectivityConnectivityConstraint: + """Gets the connectivity_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :return: The connectivity_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :rtype: TapiConnectivityConnectivityConstraint + """ + return self._connectivity_constraint + + @connectivity_constraint.setter + def connectivity_constraint(self, connectivity_constraint: TapiConnectivityConnectivityConstraint): + """Sets the connectivity_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + + + :param connectivity_constraint: The connectivity_constraint of this TapiConnectivityUpdateconnectivityserviceInput. + :type connectivity_constraint: TapiConnectivityConnectivityConstraint + """ + + self._connectivity_constraint = connectivity_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_output.py b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_output.py new file mode 100644 index 0000000000000000000000000000000000000000..a9d2d85b4f5153176e3d91dd4074b1490a409d6e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_connectivity_updateconnectivityservice_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_connectivity_connectivity_service import TapiConnectivityConnectivityService # noqa: F401,E501 +from tapi_server import util + + +class TapiConnectivityUpdateconnectivityserviceOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiConnectivityConnectivityService=None): # noqa: E501 + """TapiConnectivityUpdateconnectivityserviceOutput - a model defined in Swagger + + :param service: The service of this TapiConnectivityUpdateconnectivityserviceOutput. # noqa: E501 + :type service: TapiConnectivityConnectivityService + """ + self.swagger_types = { + 'service': TapiConnectivityConnectivityService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiConnectivityUpdateconnectivityserviceOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.connectivity.updateconnectivityservice.Output of this TapiConnectivityUpdateconnectivityserviceOutput. # noqa: E501 + :rtype: TapiConnectivityUpdateconnectivityserviceOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiConnectivityConnectivityService: + """Gets the service of this TapiConnectivityUpdateconnectivityserviceOutput. + + + :return: The service of this TapiConnectivityUpdateconnectivityserviceOutput. + :rtype: TapiConnectivityConnectivityService + """ + return self._service + + @service.setter + def service(self, service: TapiConnectivityConnectivityService): + """Sets the service of this TapiConnectivityUpdateconnectivityserviceOutput. + + + :param service: The service of this TapiConnectivityUpdateconnectivityserviceOutput. + :type service: TapiConnectivityConnectivityService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info.py new file mode 100644 index 0000000000000000000000000000000000000000..51a759100a9cb0e447d620b51db4f5fa42dbbb5c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info.py @@ -0,0 +1,146 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_perceived_severity_type import TapiNotificationPerceivedSeverityType # noqa: F401,E501 +from tapi_server.models.tapi_notification_service_affecting import TapiNotificationServiceAffecting # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationAlarmInfo(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, perceived_severity: TapiNotificationPerceivedSeverityType=None, probable_cause: str=None, service_affecting: TapiNotificationServiceAffecting=None, is_transient: bool=False): # noqa: E501 + """TapiNotificationAlarmInfo - a model defined in Swagger + + :param perceived_severity: The perceived_severity of this TapiNotificationAlarmInfo. # noqa: E501 + :type perceived_severity: TapiNotificationPerceivedSeverityType + :param probable_cause: The probable_cause of this TapiNotificationAlarmInfo. # noqa: E501 + :type probable_cause: str + :param service_affecting: The service_affecting of this TapiNotificationAlarmInfo. # noqa: E501 + :type service_affecting: TapiNotificationServiceAffecting + :param is_transient: The is_transient of this TapiNotificationAlarmInfo. # noqa: E501 + :type is_transient: bool + """ + self.swagger_types = { + 'perceived_severity': TapiNotificationPerceivedSeverityType, + 'probable_cause': str, + 'service_affecting': TapiNotificationServiceAffecting, + 'is_transient': bool + } + + self.attribute_map = { + 'perceived_severity': 'perceived-severity', + 'probable_cause': 'probable-cause', + 'service_affecting': 'service-affecting', + 'is_transient': 'is-transient' + } + self._perceived_severity = perceived_severity + self._probable_cause = probable_cause + self._service_affecting = service_affecting + self._is_transient = is_transient + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationAlarmInfo': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.AlarmInfo of this TapiNotificationAlarmInfo. # noqa: E501 + :rtype: TapiNotificationAlarmInfo + """ + return util.deserialize_model(dikt, cls) + + @property + def perceived_severity(self) -> TapiNotificationPerceivedSeverityType: + """Gets the perceived_severity of this TapiNotificationAlarmInfo. + + + :return: The perceived_severity of this TapiNotificationAlarmInfo. + :rtype: TapiNotificationPerceivedSeverityType + """ + return self._perceived_severity + + @perceived_severity.setter + def perceived_severity(self, perceived_severity: TapiNotificationPerceivedSeverityType): + """Sets the perceived_severity of this TapiNotificationAlarmInfo. + + + :param perceived_severity: The perceived_severity of this TapiNotificationAlarmInfo. + :type perceived_severity: TapiNotificationPerceivedSeverityType + """ + + self._perceived_severity = perceived_severity + + @property + def probable_cause(self) -> str: + """Gets the probable_cause of this TapiNotificationAlarmInfo. + + none # noqa: E501 + + :return: The probable_cause of this TapiNotificationAlarmInfo. + :rtype: str + """ + return self._probable_cause + + @probable_cause.setter + def probable_cause(self, probable_cause: str): + """Sets the probable_cause of this TapiNotificationAlarmInfo. + + none # noqa: E501 + + :param probable_cause: The probable_cause of this TapiNotificationAlarmInfo. + :type probable_cause: str + """ + + self._probable_cause = probable_cause + + @property + def service_affecting(self) -> TapiNotificationServiceAffecting: + """Gets the service_affecting of this TapiNotificationAlarmInfo. + + + :return: The service_affecting of this TapiNotificationAlarmInfo. + :rtype: TapiNotificationServiceAffecting + """ + return self._service_affecting + + @service_affecting.setter + def service_affecting(self, service_affecting: TapiNotificationServiceAffecting): + """Sets the service_affecting of this TapiNotificationAlarmInfo. + + + :param service_affecting: The service_affecting of this TapiNotificationAlarmInfo. + :type service_affecting: TapiNotificationServiceAffecting + """ + + self._service_affecting = service_affecting + + @property + def is_transient(self) -> bool: + """Gets the is_transient of this TapiNotificationAlarmInfo. + + none # noqa: E501 + + :return: The is_transient of this TapiNotificationAlarmInfo. + :rtype: bool + """ + return self._is_transient + + @is_transient.setter + def is_transient(self, is_transient: bool): + """Sets the is_transient of this TapiNotificationAlarmInfo. + + none # noqa: E501 + + :param is_transient: The is_transient of this TapiNotificationAlarmInfo. + :type is_transient: bool + """ + + self._is_transient = is_transient diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..d0ac0bcb010d16c1fb3429ad9864662fce4e8bda --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_alarm_info_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_alarm_info import TapiNotificationAlarmInfo # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationAlarmInfoWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, alarm_info: TapiNotificationAlarmInfo=None): # noqa: E501 + """TapiNotificationAlarmInfoWrapper - a model defined in Swagger + + :param alarm_info: The alarm_info of this TapiNotificationAlarmInfoWrapper. # noqa: E501 + :type alarm_info: TapiNotificationAlarmInfo + """ + self.swagger_types = { + 'alarm_info': TapiNotificationAlarmInfo + } + + self.attribute_map = { + 'alarm_info': 'alarm-info' + } + self._alarm_info = alarm_info + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationAlarmInfoWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.AlarmInfoWrapper of this TapiNotificationAlarmInfoWrapper. # noqa: E501 + :rtype: TapiNotificationAlarmInfoWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def alarm_info(self) -> TapiNotificationAlarmInfo: + """Gets the alarm_info of this TapiNotificationAlarmInfoWrapper. + + + :return: The alarm_info of this TapiNotificationAlarmInfoWrapper. + :rtype: TapiNotificationAlarmInfo + """ + return self._alarm_info + + @alarm_info.setter + def alarm_info(self, alarm_info: TapiNotificationAlarmInfo): + """Sets the alarm_info of this TapiNotificationAlarmInfoWrapper. + + + :param alarm_info: The alarm_info of this TapiNotificationAlarmInfoWrapper. + :type alarm_info: TapiNotificationAlarmInfo + """ + + self._alarm_info = alarm_info diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_context_augmentation1.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_context_augmentation1.py new file mode 100644 index 0000000000000000000000000000000000000000..8d363452e9ab3ba9c564a0e77791c119be44276e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_context_augmentation1.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_context import TapiNotificationNotificationContext # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationContextAugmentation1(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notification_context: TapiNotificationNotificationContext=None): # noqa: E501 + """TapiNotificationContextAugmentation1 - a model defined in Swagger + + :param notification_context: The notification_context of this TapiNotificationContextAugmentation1. # noqa: E501 + :type notification_context: TapiNotificationNotificationContext + """ + self.swagger_types = { + 'notification_context': TapiNotificationNotificationContext + } + + self.attribute_map = { + 'notification_context': 'notification-context' + } + self._notification_context = notification_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationContextAugmentation1': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.ContextAugmentation1 of this TapiNotificationContextAugmentation1. # noqa: E501 + :rtype: TapiNotificationContextAugmentation1 + """ + return util.deserialize_model(dikt, cls) + + @property + def notification_context(self) -> TapiNotificationNotificationContext: + """Gets the notification_context of this TapiNotificationContextAugmentation1. + + + :return: The notification_context of this TapiNotificationContextAugmentation1. + :rtype: TapiNotificationNotificationContext + """ + return self._notification_context + + @notification_context.setter + def notification_context(self, notification_context: TapiNotificationNotificationContext): + """Sets the notification_context of this TapiNotificationContextAugmentation1. + + + :param notification_context: The notification_context of this TapiNotificationContextAugmentation1. + :type notification_context: TapiNotificationNotificationContext + """ + + self._notification_context = notification_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_create_notification_subscription_service.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_create_notification_subscription_service.py new file mode 100644 index 0000000000000000000000000000000000000000..93518225c0bb60ce41386242cf81c86725956260 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_create_notification_subscription_service.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_createnotificationsubscriptionservice_output import TapiNotificationCreatenotificationsubscriptionserviceOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationCreateNotificationSubscriptionService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationCreatenotificationsubscriptionserviceOutput=None): # noqa: E501 + """TapiNotificationCreateNotificationSubscriptionService - a model defined in Swagger + + :param output: The output of this TapiNotificationCreateNotificationSubscriptionService. # noqa: E501 + :type output: TapiNotificationCreatenotificationsubscriptionserviceOutput + """ + self.swagger_types = { + 'output': TapiNotificationCreatenotificationsubscriptionserviceOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationCreateNotificationSubscriptionService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.CreateNotificationSubscriptionService of this TapiNotificationCreateNotificationSubscriptionService. # noqa: E501 + :rtype: TapiNotificationCreateNotificationSubscriptionService + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationCreatenotificationsubscriptionserviceOutput: + """Gets the output of this TapiNotificationCreateNotificationSubscriptionService. + + + :return: The output of this TapiNotificationCreateNotificationSubscriptionService. + :rtype: TapiNotificationCreatenotificationsubscriptionserviceOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationCreatenotificationsubscriptionserviceOutput): + """Sets the output of this TapiNotificationCreateNotificationSubscriptionService. + + + :param output: The output of this TapiNotificationCreateNotificationSubscriptionService. + :type output: TapiNotificationCreatenotificationsubscriptionserviceOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..8b0572aa9da9d16e4a7dbe3816c5d2ac672146e4 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_input.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_subscription_filter import TapiNotificationSubscriptionFilter # noqa: F401,E501 +from tapi_server.models.tapi_notification_subscription_state import TapiNotificationSubscriptionState # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationCreatenotificationsubscriptionserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_state: TapiNotificationSubscriptionState=None, subscription_filter: TapiNotificationSubscriptionFilter=None): # noqa: E501 + """TapiNotificationCreatenotificationsubscriptionserviceInput - a model defined in Swagger + + :param subscription_state: The subscription_state of this TapiNotificationCreatenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_state: TapiNotificationSubscriptionState + :param subscription_filter: The subscription_filter of this TapiNotificationCreatenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + self.swagger_types = { + 'subscription_state': TapiNotificationSubscriptionState, + 'subscription_filter': TapiNotificationSubscriptionFilter + } + + self.attribute_map = { + 'subscription_state': 'subscription-state', + 'subscription_filter': 'subscription-filter' + } + self._subscription_state = subscription_state + self._subscription_filter = subscription_filter + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationCreatenotificationsubscriptionserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.createnotificationsubscriptionservice.Input of this TapiNotificationCreatenotificationsubscriptionserviceInput. # noqa: E501 + :rtype: TapiNotificationCreatenotificationsubscriptionserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_state(self) -> TapiNotificationSubscriptionState: + """Gets the subscription_state of this TapiNotificationCreatenotificationsubscriptionserviceInput. + + + :return: The subscription_state of this TapiNotificationCreatenotificationsubscriptionserviceInput. + :rtype: TapiNotificationSubscriptionState + """ + return self._subscription_state + + @subscription_state.setter + def subscription_state(self, subscription_state: TapiNotificationSubscriptionState): + """Sets the subscription_state of this TapiNotificationCreatenotificationsubscriptionserviceInput. + + + :param subscription_state: The subscription_state of this TapiNotificationCreatenotificationsubscriptionserviceInput. + :type subscription_state: TapiNotificationSubscriptionState + """ + + self._subscription_state = subscription_state + + @property + def subscription_filter(self) -> TapiNotificationSubscriptionFilter: + """Gets the subscription_filter of this TapiNotificationCreatenotificationsubscriptionserviceInput. + + + :return: The subscription_filter of this TapiNotificationCreatenotificationsubscriptionserviceInput. + :rtype: TapiNotificationSubscriptionFilter + """ + return self._subscription_filter + + @subscription_filter.setter + def subscription_filter(self, subscription_filter: TapiNotificationSubscriptionFilter): + """Sets the subscription_filter of this TapiNotificationCreatenotificationsubscriptionserviceInput. + + + :param subscription_filter: The subscription_filter of this TapiNotificationCreatenotificationsubscriptionserviceInput. + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + + self._subscription_filter = subscription_filter diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_output.py new file mode 100644 index 0000000000000000000000000000000000000000..52426ffab3c436b1a436e9fde9f9634e75a6e0a6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_createnotificationsubscriptionservice_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationCreatenotificationsubscriptionserviceOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_service: TapiNotificationNotificationSubscriptionService=None): # noqa: E501 + """TapiNotificationCreatenotificationsubscriptionserviceOutput - a model defined in Swagger + + :param subscription_service: The subscription_service of this TapiNotificationCreatenotificationsubscriptionserviceOutput. # noqa: E501 + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + self.swagger_types = { + 'subscription_service': TapiNotificationNotificationSubscriptionService + } + + self.attribute_map = { + 'subscription_service': 'subscription-service' + } + self._subscription_service = subscription_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationCreatenotificationsubscriptionserviceOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.createnotificationsubscriptionservice.Output of this TapiNotificationCreatenotificationsubscriptionserviceOutput. # noqa: E501 + :rtype: TapiNotificationCreatenotificationsubscriptionserviceOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_service(self) -> TapiNotificationNotificationSubscriptionService: + """Gets the subscription_service of this TapiNotificationCreatenotificationsubscriptionserviceOutput. + + + :return: The subscription_service of this TapiNotificationCreatenotificationsubscriptionserviceOutput. + :rtype: TapiNotificationNotificationSubscriptionService + """ + return self._subscription_service + + @subscription_service.setter + def subscription_service(self, subscription_service: TapiNotificationNotificationSubscriptionService): + """Sets the subscription_service of this TapiNotificationCreatenotificationsubscriptionserviceOutput. + + + :param subscription_service: The subscription_service of this TapiNotificationCreatenotificationsubscriptionserviceOutput. + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + + self._subscription_service = subscription_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_delete_notification_subscription_service.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_delete_notification_subscription_service.py new file mode 100644 index 0000000000000000000000000000000000000000..c38cfa685afa1c54befcc85c2e0a046070ce79b3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_delete_notification_subscription_service.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_deletenotificationsubscriptionservice_output import TapiNotificationDeletenotificationsubscriptionserviceOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationDeleteNotificationSubscriptionService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationDeletenotificationsubscriptionserviceOutput=None): # noqa: E501 + """TapiNotificationDeleteNotificationSubscriptionService - a model defined in Swagger + + :param output: The output of this TapiNotificationDeleteNotificationSubscriptionService. # noqa: E501 + :type output: TapiNotificationDeletenotificationsubscriptionserviceOutput + """ + self.swagger_types = { + 'output': TapiNotificationDeletenotificationsubscriptionserviceOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationDeleteNotificationSubscriptionService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.DeleteNotificationSubscriptionService of this TapiNotificationDeleteNotificationSubscriptionService. # noqa: E501 + :rtype: TapiNotificationDeleteNotificationSubscriptionService + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationDeletenotificationsubscriptionserviceOutput: + """Gets the output of this TapiNotificationDeleteNotificationSubscriptionService. + + + :return: The output of this TapiNotificationDeleteNotificationSubscriptionService. + :rtype: TapiNotificationDeletenotificationsubscriptionserviceOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationDeletenotificationsubscriptionserviceOutput): + """Sets the output of this TapiNotificationDeleteNotificationSubscriptionService. + + + :param output: The output of this TapiNotificationDeleteNotificationSubscriptionService. + :type output: TapiNotificationDeletenotificationsubscriptionserviceOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..c1c2ca6aa21fa142024d9c385ce5ad133c969f97 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationDeletenotificationsubscriptionserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_id_or_name: str=None): # noqa: E501 + """TapiNotificationDeletenotificationsubscriptionserviceInput - a model defined in Swagger + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationDeletenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_id_or_name: str + """ + self.swagger_types = { + 'subscription_id_or_name': str + } + + self.attribute_map = { + 'subscription_id_or_name': 'subscription-id-or-name' + } + self._subscription_id_or_name = subscription_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationDeletenotificationsubscriptionserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.deletenotificationsubscriptionservice.Input of this TapiNotificationDeletenotificationsubscriptionserviceInput. # noqa: E501 + :rtype: TapiNotificationDeletenotificationsubscriptionserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_id_or_name(self) -> str: + """Gets the subscription_id_or_name of this TapiNotificationDeletenotificationsubscriptionserviceInput. + + none # noqa: E501 + + :return: The subscription_id_or_name of this TapiNotificationDeletenotificationsubscriptionserviceInput. + :rtype: str + """ + return self._subscription_id_or_name + + @subscription_id_or_name.setter + def subscription_id_or_name(self, subscription_id_or_name: str): + """Sets the subscription_id_or_name of this TapiNotificationDeletenotificationsubscriptionserviceInput. + + none # noqa: E501 + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationDeletenotificationsubscriptionserviceInput. + :type subscription_id_or_name: str + """ + + self._subscription_id_or_name = subscription_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_output.py new file mode 100644 index 0000000000000000000000000000000000000000..9746d00f257b5bf879c03b8e3c05a55f961e89a3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_deletenotificationsubscriptionservice_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationDeletenotificationsubscriptionserviceOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_service: TapiNotificationNotificationSubscriptionService=None): # noqa: E501 + """TapiNotificationDeletenotificationsubscriptionserviceOutput - a model defined in Swagger + + :param subscription_service: The subscription_service of this TapiNotificationDeletenotificationsubscriptionserviceOutput. # noqa: E501 + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + self.swagger_types = { + 'subscription_service': TapiNotificationNotificationSubscriptionService + } + + self.attribute_map = { + 'subscription_service': 'subscription-service' + } + self._subscription_service = subscription_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationDeletenotificationsubscriptionserviceOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.deletenotificationsubscriptionservice.Output of this TapiNotificationDeletenotificationsubscriptionserviceOutput. # noqa: E501 + :rtype: TapiNotificationDeletenotificationsubscriptionserviceOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_service(self) -> TapiNotificationNotificationSubscriptionService: + """Gets the subscription_service of this TapiNotificationDeletenotificationsubscriptionserviceOutput. + + + :return: The subscription_service of this TapiNotificationDeletenotificationsubscriptionserviceOutput. + :rtype: TapiNotificationNotificationSubscriptionService + """ + return self._subscription_service + + @subscription_service.setter + def subscription_service(self, subscription_service: TapiNotificationNotificationSubscriptionService): + """Sets the subscription_service of this TapiNotificationDeletenotificationsubscriptionserviceOutput. + + + :param subscription_service: The subscription_service of this TapiNotificationDeletenotificationsubscriptionserviceOutput. + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + + self._subscription_service = subscription_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_list.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_list.py new file mode 100644 index 0000000000000000000000000000000000000000..3b6ca4fd656c470eb45525c725b0d215244af505 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_list.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getnotificationlist_output import TapiNotificationGetnotificationlistOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetNotificationList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationGetnotificationlistOutput=None): # noqa: E501 + """TapiNotificationGetNotificationList - a model defined in Swagger + + :param output: The output of this TapiNotificationGetNotificationList. # noqa: E501 + :type output: TapiNotificationGetnotificationlistOutput + """ + self.swagger_types = { + 'output': TapiNotificationGetnotificationlistOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetNotificationList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.GetNotificationList of this TapiNotificationGetNotificationList. # noqa: E501 + :rtype: TapiNotificationGetNotificationList + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationGetnotificationlistOutput: + """Gets the output of this TapiNotificationGetNotificationList. + + + :return: The output of this TapiNotificationGetNotificationList. + :rtype: TapiNotificationGetnotificationlistOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationGetnotificationlistOutput): + """Sets the output of this TapiNotificationGetNotificationList. + + + :param output: The output of this TapiNotificationGetNotificationList. + :type output: TapiNotificationGetnotificationlistOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_details.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_details.py new file mode 100644 index 0000000000000000000000000000000000000000..50bf3f6a896cef26e68a6ed4c79563214ac26530 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicedetails_output import TapiNotificationGetnotificationsubscriptionservicedetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetNotificationSubscriptionServiceDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationGetnotificationsubscriptionservicedetailsOutput=None): # noqa: E501 + """TapiNotificationGetNotificationSubscriptionServiceDetails - a model defined in Swagger + + :param output: The output of this TapiNotificationGetNotificationSubscriptionServiceDetails. # noqa: E501 + :type output: TapiNotificationGetnotificationsubscriptionservicedetailsOutput + """ + self.swagger_types = { + 'output': TapiNotificationGetnotificationsubscriptionservicedetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetNotificationSubscriptionServiceDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.GetNotificationSubscriptionServiceDetails of this TapiNotificationGetNotificationSubscriptionServiceDetails. # noqa: E501 + :rtype: TapiNotificationGetNotificationSubscriptionServiceDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationGetnotificationsubscriptionservicedetailsOutput: + """Gets the output of this TapiNotificationGetNotificationSubscriptionServiceDetails. + + + :return: The output of this TapiNotificationGetNotificationSubscriptionServiceDetails. + :rtype: TapiNotificationGetnotificationsubscriptionservicedetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationGetnotificationsubscriptionservicedetailsOutput): + """Sets the output of this TapiNotificationGetNotificationSubscriptionServiceDetails. + + + :param output: The output of this TapiNotificationGetNotificationSubscriptionServiceDetails. + :type output: TapiNotificationGetnotificationsubscriptionservicedetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_list.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_list.py new file mode 100644 index 0000000000000000000000000000000000000000..580435c0cf76cc3fa6e4616d1969d6466e8f0931 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_notification_subscription_service_list.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getnotificationsubscriptionservicelist_output import TapiNotificationGetnotificationsubscriptionservicelistOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetNotificationSubscriptionServiceList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationGetnotificationsubscriptionservicelistOutput=None): # noqa: E501 + """TapiNotificationGetNotificationSubscriptionServiceList - a model defined in Swagger + + :param output: The output of this TapiNotificationGetNotificationSubscriptionServiceList. # noqa: E501 + :type output: TapiNotificationGetnotificationsubscriptionservicelistOutput + """ + self.swagger_types = { + 'output': TapiNotificationGetnotificationsubscriptionservicelistOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetNotificationSubscriptionServiceList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.GetNotificationSubscriptionServiceList of this TapiNotificationGetNotificationSubscriptionServiceList. # noqa: E501 + :rtype: TapiNotificationGetNotificationSubscriptionServiceList + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationGetnotificationsubscriptionservicelistOutput: + """Gets the output of this TapiNotificationGetNotificationSubscriptionServiceList. + + + :return: The output of this TapiNotificationGetNotificationSubscriptionServiceList. + :rtype: TapiNotificationGetnotificationsubscriptionservicelistOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationGetnotificationsubscriptionservicelistOutput): + """Sets the output of this TapiNotificationGetNotificationSubscriptionServiceList. + + + :param output: The output of this TapiNotificationGetNotificationSubscriptionServiceList. + :type output: TapiNotificationGetnotificationsubscriptionservicelistOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_get_supported_notification_types.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_supported_notification_types.py new file mode 100644 index 0000000000000000000000000000000000000000..3b93d784817c938b93162f984cfa78b25ce3f566 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_get_supported_notification_types.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_getsupportednotificationtypes_output import TapiNotificationGetsupportednotificationtypesOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetSupportedNotificationTypes(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationGetsupportednotificationtypesOutput=None): # noqa: E501 + """TapiNotificationGetSupportedNotificationTypes - a model defined in Swagger + + :param output: The output of this TapiNotificationGetSupportedNotificationTypes. # noqa: E501 + :type output: TapiNotificationGetsupportednotificationtypesOutput + """ + self.swagger_types = { + 'output': TapiNotificationGetsupportednotificationtypesOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetSupportedNotificationTypes': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.GetSupportedNotificationTypes of this TapiNotificationGetSupportedNotificationTypes. # noqa: E501 + :rtype: TapiNotificationGetSupportedNotificationTypes + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationGetsupportednotificationtypesOutput: + """Gets the output of this TapiNotificationGetSupportedNotificationTypes. + + + :return: The output of this TapiNotificationGetSupportedNotificationTypes. + :rtype: TapiNotificationGetsupportednotificationtypesOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationGetsupportednotificationtypesOutput): + """Sets the output of this TapiNotificationGetSupportedNotificationTypes. + + + :param output: The output of this TapiNotificationGetSupportedNotificationTypes. + :type output: TapiNotificationGetsupportednotificationtypesOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_input.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_input.py new file mode 100644 index 0000000000000000000000000000000000000000..f2fe7c6f4e3ad837e97a9b0de1b4a5e998a6805b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_input.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationGetnotificationlistInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, time_period: str=None, subscription_id_or_name: str=None): # noqa: E501 + """TapiNotificationGetnotificationlistInput - a model defined in Swagger + + :param time_period: The time_period of this TapiNotificationGetnotificationlistInput. # noqa: E501 + :type time_period: str + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationGetnotificationlistInput. # noqa: E501 + :type subscription_id_or_name: str + """ + self.swagger_types = { + 'time_period': str, + 'subscription_id_or_name': str + } + + self.attribute_map = { + 'time_period': 'time-period', + 'subscription_id_or_name': 'subscription-id-or-name' + } + self._time_period = time_period + self._subscription_id_or_name = subscription_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetnotificationlistInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getnotificationlist.Input of this TapiNotificationGetnotificationlistInput. # noqa: E501 + :rtype: TapiNotificationGetnotificationlistInput + """ + return util.deserialize_model(dikt, cls) + + @property + def time_period(self) -> str: + """Gets the time_period of this TapiNotificationGetnotificationlistInput. + + none # noqa: E501 + + :return: The time_period of this TapiNotificationGetnotificationlistInput. + :rtype: str + """ + return self._time_period + + @time_period.setter + def time_period(self, time_period: str): + """Sets the time_period of this TapiNotificationGetnotificationlistInput. + + none # noqa: E501 + + :param time_period: The time_period of this TapiNotificationGetnotificationlistInput. + :type time_period: str + """ + + self._time_period = time_period + + @property + def subscription_id_or_name(self) -> str: + """Gets the subscription_id_or_name of this TapiNotificationGetnotificationlistInput. + + none # noqa: E501 + + :return: The subscription_id_or_name of this TapiNotificationGetnotificationlistInput. + :rtype: str + """ + return self._subscription_id_or_name + + @subscription_id_or_name.setter + def subscription_id_or_name(self, subscription_id_or_name: str): + """Sets the subscription_id_or_name of this TapiNotificationGetnotificationlistInput. + + none # noqa: E501 + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationGetnotificationlistInput. + :type subscription_id_or_name: str + """ + + self._subscription_id_or_name = subscription_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_output.py new file mode 100644 index 0000000000000000000000000000000000000000..b2af0be12f49cc6f71795863b8cdc135192ba165 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationlist_output.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification import TapiNotificationNotification # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetnotificationlistOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notification: List[TapiNotificationNotification]=None): # noqa: E501 + """TapiNotificationGetnotificationlistOutput - a model defined in Swagger + + :param notification: The notification of this TapiNotificationGetnotificationlistOutput. # noqa: E501 + :type notification: List[TapiNotificationNotification] + """ + self.swagger_types = { + 'notification': List[TapiNotificationNotification] + } + + self.attribute_map = { + 'notification': 'notification' + } + self._notification = notification + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetnotificationlistOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getnotificationlist.Output of this TapiNotificationGetnotificationlistOutput. # noqa: E501 + :rtype: TapiNotificationGetnotificationlistOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def notification(self) -> List[TapiNotificationNotification]: + """Gets the notification of this TapiNotificationGetnotificationlistOutput. + + none # noqa: E501 + + :return: The notification of this TapiNotificationGetnotificationlistOutput. + :rtype: List[TapiNotificationNotification] + """ + return self._notification + + @notification.setter + def notification(self, notification: List[TapiNotificationNotification]): + """Sets the notification of this TapiNotificationGetnotificationlistOutput. + + none # noqa: E501 + + :param notification: The notification of this TapiNotificationGetnotificationlistOutput. + :type notification: List[TapiNotificationNotification] + """ + + self._notification = notification diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..acf36fec45e6fe483464b5b243bed97c8ebc5036 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationGetnotificationsubscriptionservicedetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_id_or_name: str=None): # noqa: E501 + """TapiNotificationGetnotificationsubscriptionservicedetailsInput - a model defined in Swagger + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. # noqa: E501 + :type subscription_id_or_name: str + """ + self.swagger_types = { + 'subscription_id_or_name': str + } + + self.attribute_map = { + 'subscription_id_or_name': 'subscription-id-or-name' + } + self._subscription_id_or_name = subscription_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetnotificationsubscriptionservicedetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getnotificationsubscriptionservicedetails.Input of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. # noqa: E501 + :rtype: TapiNotificationGetnotificationsubscriptionservicedetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_id_or_name(self) -> str: + """Gets the subscription_id_or_name of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. + + none # noqa: E501 + + :return: The subscription_id_or_name of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. + :rtype: str + """ + return self._subscription_id_or_name + + @subscription_id_or_name.setter + def subscription_id_or_name(self, subscription_id_or_name: str): + """Sets the subscription_id_or_name of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. + + none # noqa: E501 + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationGetnotificationsubscriptionservicedetailsInput. + :type subscription_id_or_name: str + """ + + self._subscription_id_or_name = subscription_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..35148ee279d118f4d96ca578053950e10afefa15 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicedetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetnotificationsubscriptionservicedetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_service: TapiNotificationNotificationSubscriptionService=None): # noqa: E501 + """TapiNotificationGetnotificationsubscriptionservicedetailsOutput - a model defined in Swagger + + :param subscription_service: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. # noqa: E501 + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + self.swagger_types = { + 'subscription_service': TapiNotificationNotificationSubscriptionService + } + + self.attribute_map = { + 'subscription_service': 'subscription-service' + } + self._subscription_service = subscription_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetnotificationsubscriptionservicedetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getnotificationsubscriptionservicedetails.Output of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. # noqa: E501 + :rtype: TapiNotificationGetnotificationsubscriptionservicedetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_service(self) -> TapiNotificationNotificationSubscriptionService: + """Gets the subscription_service of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. + + + :return: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. + :rtype: TapiNotificationNotificationSubscriptionService + """ + return self._subscription_service + + @subscription_service.setter + def subscription_service(self, subscription_service: TapiNotificationNotificationSubscriptionService): + """Sets the subscription_service of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. + + + :param subscription_service: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicedetailsOutput. + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + + self._subscription_service = subscription_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicelist_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicelist_output.py new file mode 100644 index 0000000000000000000000000000000000000000..1a6511724fcd939df13231d7bb537e75f32c6a93 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getnotificationsubscriptionservicelist_output.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetnotificationsubscriptionservicelistOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_service: List[TapiNotificationNotificationSubscriptionService]=None): # noqa: E501 + """TapiNotificationGetnotificationsubscriptionservicelistOutput - a model defined in Swagger + + :param subscription_service: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicelistOutput. # noqa: E501 + :type subscription_service: List[TapiNotificationNotificationSubscriptionService] + """ + self.swagger_types = { + 'subscription_service': List[TapiNotificationNotificationSubscriptionService] + } + + self.attribute_map = { + 'subscription_service': 'subscription-service' + } + self._subscription_service = subscription_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetnotificationsubscriptionservicelistOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getnotificationsubscriptionservicelist.Output of this TapiNotificationGetnotificationsubscriptionservicelistOutput. # noqa: E501 + :rtype: TapiNotificationGetnotificationsubscriptionservicelistOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_service(self) -> List[TapiNotificationNotificationSubscriptionService]: + """Gets the subscription_service of this TapiNotificationGetnotificationsubscriptionservicelistOutput. + + none # noqa: E501 + + :return: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicelistOutput. + :rtype: List[TapiNotificationNotificationSubscriptionService] + """ + return self._subscription_service + + @subscription_service.setter + def subscription_service(self, subscription_service: List[TapiNotificationNotificationSubscriptionService]): + """Sets the subscription_service of this TapiNotificationGetnotificationsubscriptionservicelistOutput. + + none # noqa: E501 + + :param subscription_service: The subscription_service of this TapiNotificationGetnotificationsubscriptionservicelistOutput. + :type subscription_service: List[TapiNotificationNotificationSubscriptionService] + """ + + self._subscription_service = subscription_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_getsupportednotificationtypes_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_getsupportednotificationtypes_output.py new file mode 100644 index 0000000000000000000000000000000000000000..e1138dc8eb6704a7cf02d708ff9dfd9caa7c1bb7 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_getsupportednotificationtypes_output.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_type import TapiNotificationNotificationType # noqa: F401,E501 +from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationGetsupportednotificationtypesOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, supported_object_types: List[TapiNotificationObjectType]=None, supported_notification_types: List[TapiNotificationNotificationType]=None): # noqa: E501 + """TapiNotificationGetsupportednotificationtypesOutput - a model defined in Swagger + + :param supported_object_types: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput. # noqa: E501 + :type supported_object_types: List[TapiNotificationObjectType] + :param supported_notification_types: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput. # noqa: E501 + :type supported_notification_types: List[TapiNotificationNotificationType] + """ + self.swagger_types = { + 'supported_object_types': List[TapiNotificationObjectType], + 'supported_notification_types': List[TapiNotificationNotificationType] + } + + self.attribute_map = { + 'supported_object_types': 'supported-object-types', + 'supported_notification_types': 'supported-notification-types' + } + self._supported_object_types = supported_object_types + self._supported_notification_types = supported_notification_types + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationGetsupportednotificationtypesOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.getsupportednotificationtypes.Output of this TapiNotificationGetsupportednotificationtypesOutput. # noqa: E501 + :rtype: TapiNotificationGetsupportednotificationtypesOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def supported_object_types(self) -> List[TapiNotificationObjectType]: + """Gets the supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput. + + none # noqa: E501 + + :return: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput. + :rtype: List[TapiNotificationObjectType] + """ + return self._supported_object_types + + @supported_object_types.setter + def supported_object_types(self, supported_object_types: List[TapiNotificationObjectType]): + """Sets the supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput. + + none # noqa: E501 + + :param supported_object_types: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput. + :type supported_object_types: List[TapiNotificationObjectType] + """ + + self._supported_object_types = supported_object_types + + @property + def supported_notification_types(self) -> List[TapiNotificationNotificationType]: + """Gets the supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput. + + none # noqa: E501 + + :return: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput. + :rtype: List[TapiNotificationNotificationType] + """ + return self._supported_notification_types + + @supported_notification_types.setter + def supported_notification_types(self, supported_notification_types: List[TapiNotificationNotificationType]): + """Sets the supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput. + + none # noqa: E501 + + :param supported_notification_types: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput. + :type supported_notification_types: List[TapiNotificationNotificationType] + """ + + self._supported_notification_types = supported_notification_types diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change.py new file mode 100644 index 0000000000000000000000000000000000000000..b73a13f13cf5a1a2db45656a5badf63bac3edfb1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationNameAndValueChange(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, value_name: str=None, old_value: str=None, new_value: str=None): # noqa: E501 + """TapiNotificationNameAndValueChange - a model defined in Swagger + + :param value_name: The value_name of this TapiNotificationNameAndValueChange. # noqa: E501 + :type value_name: str + :param old_value: The old_value of this TapiNotificationNameAndValueChange. # noqa: E501 + :type old_value: str + :param new_value: The new_value of this TapiNotificationNameAndValueChange. # noqa: E501 + :type new_value: str + """ + self.swagger_types = { + 'value_name': str, + 'old_value': str, + 'new_value': str + } + + self.attribute_map = { + 'value_name': 'value-name', + 'old_value': 'old-value', + 'new_value': 'new-value' + } + self._value_name = value_name + self._old_value = old_value + self._new_value = new_value + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNameAndValueChange': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NameAndValueChange of this TapiNotificationNameAndValueChange. # noqa: E501 + :rtype: TapiNotificationNameAndValueChange + """ + return util.deserialize_model(dikt, cls) + + @property + def value_name(self) -> str: + """Gets the value_name of this TapiNotificationNameAndValueChange. + + The name of the value. The value need not have a name. # noqa: E501 + + :return: The value_name of this TapiNotificationNameAndValueChange. + :rtype: str + """ + return self._value_name + + @value_name.setter + def value_name(self, value_name: str): + """Sets the value_name of this TapiNotificationNameAndValueChange. + + The name of the value. The value need not have a name. # noqa: E501 + + :param value_name: The value_name of this TapiNotificationNameAndValueChange. + :type value_name: str + """ + + self._value_name = value_name + + @property + def old_value(self) -> str: + """Gets the old_value of this TapiNotificationNameAndValueChange. + + The value # noqa: E501 + + :return: The old_value of this TapiNotificationNameAndValueChange. + :rtype: str + """ + return self._old_value + + @old_value.setter + def old_value(self, old_value: str): + """Sets the old_value of this TapiNotificationNameAndValueChange. + + The value # noqa: E501 + + :param old_value: The old_value of this TapiNotificationNameAndValueChange. + :type old_value: str + """ + + self._old_value = old_value + + @property + def new_value(self) -> str: + """Gets the new_value of this TapiNotificationNameAndValueChange. + + The value # noqa: E501 + + :return: The new_value of this TapiNotificationNameAndValueChange. + :rtype: str + """ + return self._new_value + + @new_value.setter + def new_value(self, new_value: str): + """Sets the new_value of this TapiNotificationNameAndValueChange. + + The value # noqa: E501 + + :param new_value: The new_value of this TapiNotificationNameAndValueChange. + :type new_value: str + """ + + self._new_value = new_value diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..3911ae8b9deb9df8b2116a8bf88657b8a30b0b73 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_name_and_value_change_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_name_and_value_change import TapiNotificationNameAndValueChange # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNameAndValueChangeWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, changed_attributes: TapiNotificationNameAndValueChange=None): # noqa: E501 + """TapiNotificationNameAndValueChangeWrapper - a model defined in Swagger + + :param changed_attributes: The changed_attributes of this TapiNotificationNameAndValueChangeWrapper. # noqa: E501 + :type changed_attributes: TapiNotificationNameAndValueChange + """ + self.swagger_types = { + 'changed_attributes': TapiNotificationNameAndValueChange + } + + self.attribute_map = { + 'changed_attributes': 'changed-attributes' + } + self._changed_attributes = changed_attributes + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNameAndValueChangeWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NameAndValueChangeWrapper of this TapiNotificationNameAndValueChangeWrapper. # noqa: E501 + :rtype: TapiNotificationNameAndValueChangeWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def changed_attributes(self) -> TapiNotificationNameAndValueChange: + """Gets the changed_attributes of this TapiNotificationNameAndValueChangeWrapper. + + + :return: The changed_attributes of this TapiNotificationNameAndValueChangeWrapper. + :rtype: TapiNotificationNameAndValueChange + """ + return self._changed_attributes + + @changed_attributes.setter + def changed_attributes(self, changed_attributes: TapiNotificationNameAndValueChange): + """Sets the changed_attributes of this TapiNotificationNameAndValueChangeWrapper. + + + :param changed_attributes: The changed_attributes of this TapiNotificationNameAndValueChangeWrapper. + :type changed_attributes: TapiNotificationNameAndValueChange + """ + + self._changed_attributes = changed_attributes diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification.py new file mode 100644 index 0000000000000000000000000000000000000000..df83fd5889de69dfe5774363d25caa0be0053784 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification.py @@ -0,0 +1,453 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_notification_alarm_info import TapiNotificationAlarmInfo # noqa: F401,E501 +from tapi_server.models.tapi_notification_name_and_value_change import TapiNotificationNameAndValueChange # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_type import TapiNotificationNotificationType # noqa: F401,E501 +from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType # noqa: F401,E501 +from tapi_server.models.tapi_notification_source_indicator import TapiNotificationSourceIndicator # noqa: F401,E501 +from tapi_server.models.tapi_notification_tca_info import TapiNotificationTcaInfo # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotification(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, target_object_type: TapiNotificationObjectType=None, additional_text: str=None, event_time_stamp: str=None, additional_info: List[TapiCommonNameAndValue]=None, sequence_number: int=None, tca_info: TapiNotificationTcaInfo=None, target_object_identifier: str=None, notification_type: TapiNotificationNotificationType=None, target_object_name: List[TapiCommonNameAndValue]=None, layer_protocol_name: TapiCommonLayerProtocolName=None, source_indicator: TapiNotificationSourceIndicator=None, alarm_info: TapiNotificationAlarmInfo=None, changed_attributes: List[TapiNotificationNameAndValueChange]=None): # noqa: E501 + """TapiNotificationNotification - a model defined in Swagger + + :param name: The name of this TapiNotificationNotification. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiNotificationNotification. # noqa: E501 + :type uuid: str + :param target_object_type: The target_object_type of this TapiNotificationNotification. # noqa: E501 + :type target_object_type: TapiNotificationObjectType + :param additional_text: The additional_text of this TapiNotificationNotification. # noqa: E501 + :type additional_text: str + :param event_time_stamp: The event_time_stamp of this TapiNotificationNotification. # noqa: E501 + :type event_time_stamp: str + :param additional_info: The additional_info of this TapiNotificationNotification. # noqa: E501 + :type additional_info: List[TapiCommonNameAndValue] + :param sequence_number: The sequence_number of this TapiNotificationNotification. # noqa: E501 + :type sequence_number: int + :param tca_info: The tca_info of this TapiNotificationNotification. # noqa: E501 + :type tca_info: TapiNotificationTcaInfo + :param target_object_identifier: The target_object_identifier of this TapiNotificationNotification. # noqa: E501 + :type target_object_identifier: str + :param notification_type: The notification_type of this TapiNotificationNotification. # noqa: E501 + :type notification_type: TapiNotificationNotificationType + :param target_object_name: The target_object_name of this TapiNotificationNotification. # noqa: E501 + :type target_object_name: List[TapiCommonNameAndValue] + :param layer_protocol_name: The layer_protocol_name of this TapiNotificationNotification. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param source_indicator: The source_indicator of this TapiNotificationNotification. # noqa: E501 + :type source_indicator: TapiNotificationSourceIndicator + :param alarm_info: The alarm_info of this TapiNotificationNotification. # noqa: E501 + :type alarm_info: TapiNotificationAlarmInfo + :param changed_attributes: The changed_attributes of this TapiNotificationNotification. # noqa: E501 + :type changed_attributes: List[TapiNotificationNameAndValueChange] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'target_object_type': TapiNotificationObjectType, + 'additional_text': str, + 'event_time_stamp': str, + 'additional_info': List[TapiCommonNameAndValue], + 'sequence_number': int, + 'tca_info': TapiNotificationTcaInfo, + 'target_object_identifier': str, + 'notification_type': TapiNotificationNotificationType, + 'target_object_name': List[TapiCommonNameAndValue], + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'source_indicator': TapiNotificationSourceIndicator, + 'alarm_info': TapiNotificationAlarmInfo, + 'changed_attributes': List[TapiNotificationNameAndValueChange] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'target_object_type': 'target-object-type', + 'additional_text': 'additional-text', + 'event_time_stamp': 'event-time-stamp', + 'additional_info': 'additional-info', + 'sequence_number': 'sequence-number', + 'tca_info': 'tca-info', + 'target_object_identifier': 'target-object-identifier', + 'notification_type': 'notification-type', + 'target_object_name': 'target-object-name', + 'layer_protocol_name': 'layer-protocol-name', + 'source_indicator': 'source-indicator', + 'alarm_info': 'alarm-info', + 'changed_attributes': 'changed-attributes' + } + self._name = name + self._uuid = uuid + self._target_object_type = target_object_type + self._additional_text = additional_text + self._event_time_stamp = event_time_stamp + self._additional_info = additional_info + self._sequence_number = sequence_number + self._tca_info = tca_info + self._target_object_identifier = target_object_identifier + self._notification_type = notification_type + self._target_object_name = target_object_name + self._layer_protocol_name = layer_protocol_name + self._source_indicator = source_indicator + self._alarm_info = alarm_info + self._changed_attributes = changed_attributes + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotification': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.Notification of this TapiNotificationNotification. # noqa: E501 + :rtype: TapiNotificationNotification + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiNotificationNotification. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiNotificationNotification. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiNotificationNotification. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiNotificationNotification. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiNotificationNotification. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiNotificationNotification. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiNotificationNotification. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiNotificationNotification. + :type uuid: str + """ + + self._uuid = uuid + + @property + def target_object_type(self) -> TapiNotificationObjectType: + """Gets the target_object_type of this TapiNotificationNotification. + + + :return: The target_object_type of this TapiNotificationNotification. + :rtype: TapiNotificationObjectType + """ + return self._target_object_type + + @target_object_type.setter + def target_object_type(self, target_object_type: TapiNotificationObjectType): + """Sets the target_object_type of this TapiNotificationNotification. + + + :param target_object_type: The target_object_type of this TapiNotificationNotification. + :type target_object_type: TapiNotificationObjectType + """ + + self._target_object_type = target_object_type + + @property + def additional_text(self) -> str: + """Gets the additional_text of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The additional_text of this TapiNotificationNotification. + :rtype: str + """ + return self._additional_text + + @additional_text.setter + def additional_text(self, additional_text: str): + """Sets the additional_text of this TapiNotificationNotification. + + none # noqa: E501 + + :param additional_text: The additional_text of this TapiNotificationNotification. + :type additional_text: str + """ + + self._additional_text = additional_text + + @property + def event_time_stamp(self) -> str: + """Gets the event_time_stamp of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The event_time_stamp of this TapiNotificationNotification. + :rtype: str + """ + return self._event_time_stamp + + @event_time_stamp.setter + def event_time_stamp(self, event_time_stamp: str): + """Sets the event_time_stamp of this TapiNotificationNotification. + + none # noqa: E501 + + :param event_time_stamp: The event_time_stamp of this TapiNotificationNotification. + :type event_time_stamp: str + """ + + self._event_time_stamp = event_time_stamp + + @property + def additional_info(self) -> List[TapiCommonNameAndValue]: + """Gets the additional_info of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The additional_info of this TapiNotificationNotification. + :rtype: List[TapiCommonNameAndValue] + """ + return self._additional_info + + @additional_info.setter + def additional_info(self, additional_info: List[TapiCommonNameAndValue]): + """Sets the additional_info of this TapiNotificationNotification. + + none # noqa: E501 + + :param additional_info: The additional_info of this TapiNotificationNotification. + :type additional_info: List[TapiCommonNameAndValue] + """ + + self._additional_info = additional_info + + @property + def sequence_number(self) -> int: + """Gets the sequence_number of this TapiNotificationNotification. + + A monotonous increasing sequence number associated with the notification. The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined. # noqa: E501 + + :return: The sequence_number of this TapiNotificationNotification. + :rtype: int + """ + return self._sequence_number + + @sequence_number.setter + def sequence_number(self, sequence_number: int): + """Sets the sequence_number of this TapiNotificationNotification. + + A monotonous increasing sequence number associated with the notification. The exact semantics of how this sequence number is assigned (per channel or subscription or source or system) is left undefined. # noqa: E501 + + :param sequence_number: The sequence_number of this TapiNotificationNotification. + :type sequence_number: int + """ + + self._sequence_number = sequence_number + + @property + def tca_info(self) -> TapiNotificationTcaInfo: + """Gets the tca_info of this TapiNotificationNotification. + + + :return: The tca_info of this TapiNotificationNotification. + :rtype: TapiNotificationTcaInfo + """ + return self._tca_info + + @tca_info.setter + def tca_info(self, tca_info: TapiNotificationTcaInfo): + """Sets the tca_info of this TapiNotificationNotification. + + + :param tca_info: The tca_info of this TapiNotificationNotification. + :type tca_info: TapiNotificationTcaInfo + """ + + self._tca_info = tca_info + + @property + def target_object_identifier(self) -> str: + """Gets the target_object_identifier of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The target_object_identifier of this TapiNotificationNotification. + :rtype: str + """ + return self._target_object_identifier + + @target_object_identifier.setter + def target_object_identifier(self, target_object_identifier: str): + """Sets the target_object_identifier of this TapiNotificationNotification. + + none # noqa: E501 + + :param target_object_identifier: The target_object_identifier of this TapiNotificationNotification. + :type target_object_identifier: str + """ + + self._target_object_identifier = target_object_identifier + + @property + def notification_type(self) -> TapiNotificationNotificationType: + """Gets the notification_type of this TapiNotificationNotification. + + + :return: The notification_type of this TapiNotificationNotification. + :rtype: TapiNotificationNotificationType + """ + return self._notification_type + + @notification_type.setter + def notification_type(self, notification_type: TapiNotificationNotificationType): + """Sets the notification_type of this TapiNotificationNotification. + + + :param notification_type: The notification_type of this TapiNotificationNotification. + :type notification_type: TapiNotificationNotificationType + """ + + self._notification_type = notification_type + + @property + def target_object_name(self) -> List[TapiCommonNameAndValue]: + """Gets the target_object_name of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The target_object_name of this TapiNotificationNotification. + :rtype: List[TapiCommonNameAndValue] + """ + return self._target_object_name + + @target_object_name.setter + def target_object_name(self, target_object_name: List[TapiCommonNameAndValue]): + """Sets the target_object_name of this TapiNotificationNotification. + + none # noqa: E501 + + :param target_object_name: The target_object_name of this TapiNotificationNotification. + :type target_object_name: List[TapiCommonNameAndValue] + """ + + self._target_object_name = target_object_name + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiNotificationNotification. + + + :return: The layer_protocol_name of this TapiNotificationNotification. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiNotificationNotification. + + + :param layer_protocol_name: The layer_protocol_name of this TapiNotificationNotification. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def source_indicator(self) -> TapiNotificationSourceIndicator: + """Gets the source_indicator of this TapiNotificationNotification. + + + :return: The source_indicator of this TapiNotificationNotification. + :rtype: TapiNotificationSourceIndicator + """ + return self._source_indicator + + @source_indicator.setter + def source_indicator(self, source_indicator: TapiNotificationSourceIndicator): + """Sets the source_indicator of this TapiNotificationNotification. + + + :param source_indicator: The source_indicator of this TapiNotificationNotification. + :type source_indicator: TapiNotificationSourceIndicator + """ + + self._source_indicator = source_indicator + + @property + def alarm_info(self) -> TapiNotificationAlarmInfo: + """Gets the alarm_info of this TapiNotificationNotification. + + + :return: The alarm_info of this TapiNotificationNotification. + :rtype: TapiNotificationAlarmInfo + """ + return self._alarm_info + + @alarm_info.setter + def alarm_info(self, alarm_info: TapiNotificationAlarmInfo): + """Sets the alarm_info of this TapiNotificationNotification. + + + :param alarm_info: The alarm_info of this TapiNotificationNotification. + :type alarm_info: TapiNotificationAlarmInfo + """ + + self._alarm_info = alarm_info + + @property + def changed_attributes(self) -> List[TapiNotificationNameAndValueChange]: + """Gets the changed_attributes of this TapiNotificationNotification. + + none # noqa: E501 + + :return: The changed_attributes of this TapiNotificationNotification. + :rtype: List[TapiNotificationNameAndValueChange] + """ + return self._changed_attributes + + @changed_attributes.setter + def changed_attributes(self, changed_attributes: List[TapiNotificationNameAndValueChange]): + """Sets the changed_attributes of this TapiNotificationNotification. + + none # noqa: E501 + + :param changed_attributes: The changed_attributes of this TapiNotificationNotification. + :type changed_attributes: List[TapiNotificationNameAndValueChange] + """ + + self._changed_attributes = changed_attributes diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel.py new file mode 100644 index 0000000000000000000000000000000000000000..c5d7bb6a11f7015ca6cdc224d359a3c43ddb09d3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel.py @@ -0,0 +1,150 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationChannel(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, next_sequence_no: int=None, stream_address: str=None): # noqa: E501 + """TapiNotificationNotificationChannel - a model defined in Swagger + + :param name: The name of this TapiNotificationNotificationChannel. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiNotificationNotificationChannel. # noqa: E501 + :type local_id: str + :param next_sequence_no: The next_sequence_no of this TapiNotificationNotificationChannel. # noqa: E501 + :type next_sequence_no: int + :param stream_address: The stream_address of this TapiNotificationNotificationChannel. # noqa: E501 + :type stream_address: str + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'next_sequence_no': int, + 'stream_address': str + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'next_sequence_no': 'next-sequence-no', + 'stream_address': 'stream-address' + } + self._name = name + self._local_id = local_id + self._next_sequence_no = next_sequence_no + self._stream_address = stream_address + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationChannel': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationChannel of this TapiNotificationNotificationChannel. # noqa: E501 + :rtype: TapiNotificationNotificationChannel + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiNotificationNotificationChannel. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiNotificationNotificationChannel. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiNotificationNotificationChannel. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiNotificationNotificationChannel. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiNotificationNotificationChannel. + + none # noqa: E501 + + :return: The local_id of this TapiNotificationNotificationChannel. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiNotificationNotificationChannel. + + none # noqa: E501 + + :param local_id: The local_id of this TapiNotificationNotificationChannel. + :type local_id: str + """ + + self._local_id = local_id + + @property + def next_sequence_no(self) -> int: + """Gets the next_sequence_no of this TapiNotificationNotificationChannel. + + The sequence number of the next notification that will be published on the channel # noqa: E501 + + :return: The next_sequence_no of this TapiNotificationNotificationChannel. + :rtype: int + """ + return self._next_sequence_no + + @next_sequence_no.setter + def next_sequence_no(self, next_sequence_no: int): + """Sets the next_sequence_no of this TapiNotificationNotificationChannel. + + The sequence number of the next notification that will be published on the channel # noqa: E501 + + :param next_sequence_no: The next_sequence_no of this TapiNotificationNotificationChannel. + :type next_sequence_no: int + """ + + self._next_sequence_no = next_sequence_no + + @property + def stream_address(self) -> str: + """Gets the stream_address of this TapiNotificationNotificationChannel. + + The address/location/URI of the channel/stream to which the subscribed notifications are published. This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string. # noqa: E501 + + :return: The stream_address of this TapiNotificationNotificationChannel. + :rtype: str + """ + return self._stream_address + + @stream_address.setter + def stream_address(self, stream_address: str): + """Sets the stream_address of this TapiNotificationNotificationChannel. + + The address/location/URI of the channel/stream to which the subscribed notifications are published. This specifics of this is typically dependent on the implementation protocol & mechanism and hence is typed as a string. # noqa: E501 + + :param stream_address: The stream_address of this TapiNotificationNotificationChannel. + :type stream_address: str + """ + + self._stream_address = stream_address diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..1176a018926ae06c53d76ceaa6b62e22822866b2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_channel_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_channel import TapiNotificationNotificationChannel # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationChannelWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notification_channel: TapiNotificationNotificationChannel=None): # noqa: E501 + """TapiNotificationNotificationChannelWrapper - a model defined in Swagger + + :param notification_channel: The notification_channel of this TapiNotificationNotificationChannelWrapper. # noqa: E501 + :type notification_channel: TapiNotificationNotificationChannel + """ + self.swagger_types = { + 'notification_channel': TapiNotificationNotificationChannel + } + + self.attribute_map = { + 'notification_channel': 'notification-channel' + } + self._notification_channel = notification_channel + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationChannelWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationChannelWrapper of this TapiNotificationNotificationChannelWrapper. # noqa: E501 + :rtype: TapiNotificationNotificationChannelWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def notification_channel(self) -> TapiNotificationNotificationChannel: + """Gets the notification_channel of this TapiNotificationNotificationChannelWrapper. + + + :return: The notification_channel of this TapiNotificationNotificationChannelWrapper. + :rtype: TapiNotificationNotificationChannel + """ + return self._notification_channel + + @notification_channel.setter + def notification_channel(self, notification_channel: TapiNotificationNotificationChannel): + """Sets the notification_channel of this TapiNotificationNotificationChannelWrapper. + + + :param notification_channel: The notification_channel of this TapiNotificationNotificationChannelWrapper. + :type notification_channel: TapiNotificationNotificationChannel + """ + + self._notification_channel = notification_channel diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context.py new file mode 100644 index 0000000000000000000000000000000000000000..595ddd8312eb2fe6cf28cfccf5853759d1419ada --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification import TapiNotificationNotification # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notif_subscription: List[TapiNotificationNotificationSubscriptionService]=None, notification: List[TapiNotificationNotification]=None): # noqa: E501 + """TapiNotificationNotificationContext - a model defined in Swagger + + :param notif_subscription: The notif_subscription of this TapiNotificationNotificationContext. # noqa: E501 + :type notif_subscription: List[TapiNotificationNotificationSubscriptionService] + :param notification: The notification of this TapiNotificationNotificationContext. # noqa: E501 + :type notification: List[TapiNotificationNotification] + """ + self.swagger_types = { + 'notif_subscription': List[TapiNotificationNotificationSubscriptionService], + 'notification': List[TapiNotificationNotification] + } + + self.attribute_map = { + 'notif_subscription': 'notif-subscription', + 'notification': 'notification' + } + self._notif_subscription = notif_subscription + self._notification = notification + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationContext of this TapiNotificationNotificationContext. # noqa: E501 + :rtype: TapiNotificationNotificationContext + """ + return util.deserialize_model(dikt, cls) + + @property + def notif_subscription(self) -> List[TapiNotificationNotificationSubscriptionService]: + """Gets the notif_subscription of this TapiNotificationNotificationContext. + + none # noqa: E501 + + :return: The notif_subscription of this TapiNotificationNotificationContext. + :rtype: List[TapiNotificationNotificationSubscriptionService] + """ + return self._notif_subscription + + @notif_subscription.setter + def notif_subscription(self, notif_subscription: List[TapiNotificationNotificationSubscriptionService]): + """Sets the notif_subscription of this TapiNotificationNotificationContext. + + none # noqa: E501 + + :param notif_subscription: The notif_subscription of this TapiNotificationNotificationContext. + :type notif_subscription: List[TapiNotificationNotificationSubscriptionService] + """ + + self._notif_subscription = notif_subscription + + @property + def notification(self) -> List[TapiNotificationNotification]: + """Gets the notification of this TapiNotificationNotificationContext. + + none # noqa: E501 + + :return: The notification of this TapiNotificationNotificationContext. + :rtype: List[TapiNotificationNotification] + """ + return self._notification + + @notification.setter + def notification(self, notification: List[TapiNotificationNotification]): + """Sets the notification of this TapiNotificationNotificationContext. + + none # noqa: E501 + + :param notification: The notification of this TapiNotificationNotificationContext. + :type notification: List[TapiNotificationNotification] + """ + + self._notification = notification diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..fb0bf9abb2397c121f005757e5da48701132bdfe --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_context_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_context import TapiNotificationNotificationContext # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationContextWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_notificationnotification_context: TapiNotificationNotificationContext=None): # noqa: E501 + """TapiNotificationNotificationContextWrapper - a model defined in Swagger + + :param tapi_notificationnotification_context: The tapi_notificationnotification_context of this TapiNotificationNotificationContextWrapper. # noqa: E501 + :type tapi_notificationnotification_context: TapiNotificationNotificationContext + """ + self.swagger_types = { + 'tapi_notificationnotification_context': TapiNotificationNotificationContext + } + + self.attribute_map = { + 'tapi_notificationnotification_context': 'tapi-notification:notification-context' + } + self._tapi_notificationnotification_context = tapi_notificationnotification_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationContextWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationContextWrapper of this TapiNotificationNotificationContextWrapper. # noqa: E501 + :rtype: TapiNotificationNotificationContextWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_notificationnotification_context(self) -> TapiNotificationNotificationContext: + """Gets the tapi_notificationnotification_context of this TapiNotificationNotificationContextWrapper. + + + :return: The tapi_notificationnotification_context of this TapiNotificationNotificationContextWrapper. + :rtype: TapiNotificationNotificationContext + """ + return self._tapi_notificationnotification_context + + @tapi_notificationnotification_context.setter + def tapi_notificationnotification_context(self, tapi_notificationnotification_context: TapiNotificationNotificationContext): + """Sets the tapi_notificationnotification_context of this TapiNotificationNotificationContextWrapper. + + + :param tapi_notificationnotification_context: The tapi_notificationnotification_context of this TapiNotificationNotificationContextWrapper. + :type tapi_notificationnotification_context: TapiNotificationNotificationContext + """ + + self._tapi_notificationnotification_context = tapi_notificationnotification_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service.py new file mode 100644 index 0000000000000000000000000000000000000000..10e6128e52392a42a3472c82a6ca2894c6820ad1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service.py @@ -0,0 +1,262 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification import TapiNotificationNotification # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_channel import TapiNotificationNotificationChannel # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_type import TapiNotificationNotificationType # noqa: F401,E501 +from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType # noqa: F401,E501 +from tapi_server.models.tapi_notification_subscription_filter import TapiNotificationSubscriptionFilter # noqa: F401,E501 +from tapi_server.models.tapi_notification_subscription_state import TapiNotificationSubscriptionState # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationSubscriptionService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, notification: List[TapiNotificationNotification]=None, notification_channel: TapiNotificationNotificationChannel=None, subscription_state: TapiNotificationSubscriptionState=None, supported_object_types: List[TapiNotificationObjectType]=None, supported_notification_types: List[TapiNotificationNotificationType]=None, subscription_filter: TapiNotificationSubscriptionFilter=None): # noqa: E501 + """TapiNotificationNotificationSubscriptionService - a model defined in Swagger + + :param name: The name of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type uuid: str + :param notification: The notification of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type notification: List[TapiNotificationNotification] + :param notification_channel: The notification_channel of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type notification_channel: TapiNotificationNotificationChannel + :param subscription_state: The subscription_state of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type subscription_state: TapiNotificationSubscriptionState + :param supported_object_types: The supported_object_types of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type supported_object_types: List[TapiNotificationObjectType] + :param supported_notification_types: The supported_notification_types of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type supported_notification_types: List[TapiNotificationNotificationType] + :param subscription_filter: The subscription_filter of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'notification': List[TapiNotificationNotification], + 'notification_channel': TapiNotificationNotificationChannel, + 'subscription_state': TapiNotificationSubscriptionState, + 'supported_object_types': List[TapiNotificationObjectType], + 'supported_notification_types': List[TapiNotificationNotificationType], + 'subscription_filter': TapiNotificationSubscriptionFilter + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'notification': 'notification', + 'notification_channel': 'notification-channel', + 'subscription_state': 'subscription-state', + 'supported_object_types': 'supported-object-types', + 'supported_notification_types': 'supported-notification-types', + 'subscription_filter': 'subscription-filter' + } + self._name = name + self._uuid = uuid + self._notification = notification + self._notification_channel = notification_channel + self._subscription_state = subscription_state + self._supported_object_types = supported_object_types + self._supported_notification_types = supported_notification_types + self._subscription_filter = subscription_filter + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationSubscriptionService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationSubscriptionService of this TapiNotificationNotificationSubscriptionService. # noqa: E501 + :rtype: TapiNotificationNotificationSubscriptionService + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiNotificationNotificationSubscriptionService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiNotificationNotificationSubscriptionService. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiNotificationNotificationSubscriptionService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiNotificationNotificationSubscriptionService. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiNotificationNotificationSubscriptionService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiNotificationNotificationSubscriptionService. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiNotificationNotificationSubscriptionService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiNotificationNotificationSubscriptionService. + :type uuid: str + """ + + self._uuid = uuid + + @property + def notification(self) -> List[TapiNotificationNotification]: + """Gets the notification of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :return: The notification of this TapiNotificationNotificationSubscriptionService. + :rtype: List[TapiNotificationNotification] + """ + return self._notification + + @notification.setter + def notification(self, notification: List[TapiNotificationNotification]): + """Sets the notification of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :param notification: The notification of this TapiNotificationNotificationSubscriptionService. + :type notification: List[TapiNotificationNotification] + """ + + self._notification = notification + + @property + def notification_channel(self) -> TapiNotificationNotificationChannel: + """Gets the notification_channel of this TapiNotificationNotificationSubscriptionService. + + + :return: The notification_channel of this TapiNotificationNotificationSubscriptionService. + :rtype: TapiNotificationNotificationChannel + """ + return self._notification_channel + + @notification_channel.setter + def notification_channel(self, notification_channel: TapiNotificationNotificationChannel): + """Sets the notification_channel of this TapiNotificationNotificationSubscriptionService. + + + :param notification_channel: The notification_channel of this TapiNotificationNotificationSubscriptionService. + :type notification_channel: TapiNotificationNotificationChannel + """ + + self._notification_channel = notification_channel + + @property + def subscription_state(self) -> TapiNotificationSubscriptionState: + """Gets the subscription_state of this TapiNotificationNotificationSubscriptionService. + + + :return: The subscription_state of this TapiNotificationNotificationSubscriptionService. + :rtype: TapiNotificationSubscriptionState + """ + return self._subscription_state + + @subscription_state.setter + def subscription_state(self, subscription_state: TapiNotificationSubscriptionState): + """Sets the subscription_state of this TapiNotificationNotificationSubscriptionService. + + + :param subscription_state: The subscription_state of this TapiNotificationNotificationSubscriptionService. + :type subscription_state: TapiNotificationSubscriptionState + """ + + self._subscription_state = subscription_state + + @property + def supported_object_types(self) -> List[TapiNotificationObjectType]: + """Gets the supported_object_types of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :return: The supported_object_types of this TapiNotificationNotificationSubscriptionService. + :rtype: List[TapiNotificationObjectType] + """ + return self._supported_object_types + + @supported_object_types.setter + def supported_object_types(self, supported_object_types: List[TapiNotificationObjectType]): + """Sets the supported_object_types of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :param supported_object_types: The supported_object_types of this TapiNotificationNotificationSubscriptionService. + :type supported_object_types: List[TapiNotificationObjectType] + """ + + self._supported_object_types = supported_object_types + + @property + def supported_notification_types(self) -> List[TapiNotificationNotificationType]: + """Gets the supported_notification_types of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :return: The supported_notification_types of this TapiNotificationNotificationSubscriptionService. + :rtype: List[TapiNotificationNotificationType] + """ + return self._supported_notification_types + + @supported_notification_types.setter + def supported_notification_types(self, supported_notification_types: List[TapiNotificationNotificationType]): + """Sets the supported_notification_types of this TapiNotificationNotificationSubscriptionService. + + none # noqa: E501 + + :param supported_notification_types: The supported_notification_types of this TapiNotificationNotificationSubscriptionService. + :type supported_notification_types: List[TapiNotificationNotificationType] + """ + + self._supported_notification_types = supported_notification_types + + @property + def subscription_filter(self) -> TapiNotificationSubscriptionFilter: + """Gets the subscription_filter of this TapiNotificationNotificationSubscriptionService. + + + :return: The subscription_filter of this TapiNotificationNotificationSubscriptionService. + :rtype: TapiNotificationSubscriptionFilter + """ + return self._subscription_filter + + @subscription_filter.setter + def subscription_filter(self, subscription_filter: TapiNotificationSubscriptionFilter): + """Sets the subscription_filter of this TapiNotificationNotificationSubscriptionService. + + + :param subscription_filter: The subscription_filter of this TapiNotificationNotificationSubscriptionService. + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + + self._subscription_filter = subscription_filter diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..ec809bd51070beb022d5f089a5d1826af4f15ad9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_subscription_service_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationSubscriptionServiceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notif_subscription: TapiNotificationNotificationSubscriptionService=None): # noqa: E501 + """TapiNotificationNotificationSubscriptionServiceWrapper - a model defined in Swagger + + :param notif_subscription: The notif_subscription of this TapiNotificationNotificationSubscriptionServiceWrapper. # noqa: E501 + :type notif_subscription: TapiNotificationNotificationSubscriptionService + """ + self.swagger_types = { + 'notif_subscription': TapiNotificationNotificationSubscriptionService + } + + self.attribute_map = { + 'notif_subscription': 'notif-subscription' + } + self._notif_subscription = notif_subscription + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationSubscriptionServiceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationSubscriptionServiceWrapper of this TapiNotificationNotificationSubscriptionServiceWrapper. # noqa: E501 + :rtype: TapiNotificationNotificationSubscriptionServiceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def notif_subscription(self) -> TapiNotificationNotificationSubscriptionService: + """Gets the notif_subscription of this TapiNotificationNotificationSubscriptionServiceWrapper. + + + :return: The notif_subscription of this TapiNotificationNotificationSubscriptionServiceWrapper. + :rtype: TapiNotificationNotificationSubscriptionService + """ + return self._notif_subscription + + @notif_subscription.setter + def notif_subscription(self, notif_subscription: TapiNotificationNotificationSubscriptionService): + """Sets the notif_subscription of this TapiNotificationNotificationSubscriptionServiceWrapper. + + + :param notif_subscription: The notif_subscription of this TapiNotificationNotificationSubscriptionServiceWrapper. + :type notif_subscription: TapiNotificationNotificationSubscriptionService + """ + + self._notif_subscription = notif_subscription diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_type.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_type.py new file mode 100644 index 0000000000000000000000000000000000000000..176f3661feded5e423c2fddb5346602eab9f5692 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_type.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationNotificationType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + OBJECT_CREATION = "OBJECT_CREATION" + OBJECT_DELETION = "OBJECT_DELETION" + ATTRIBUTE_VALUE_CHANGE = "ATTRIBUTE_VALUE_CHANGE" + ALARM_EVENT = "ALARM_EVENT" + THRESHOLD_CROSSING_ALERT = "THRESHOLD_CROSSING_ALERT" + def __init__(self): # noqa: E501 + """TapiNotificationNotificationType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationType of this TapiNotificationNotificationType. # noqa: E501 + :rtype: TapiNotificationNotificationType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..eb2d9a1ed6dad8fa90c0ef097e40d80d1c4e6e67 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_notification_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification import TapiNotificationNotification # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationNotificationWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, notification: TapiNotificationNotification=None): # noqa: E501 + """TapiNotificationNotificationWrapper - a model defined in Swagger + + :param notification: The notification of this TapiNotificationNotificationWrapper. # noqa: E501 + :type notification: TapiNotificationNotification + """ + self.swagger_types = { + 'notification': TapiNotificationNotification + } + + self.attribute_map = { + 'notification': 'notification' + } + self._notification = notification + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationNotificationWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.NotificationWrapper of this TapiNotificationNotificationWrapper. # noqa: E501 + :rtype: TapiNotificationNotificationWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def notification(self) -> TapiNotificationNotification: + """Gets the notification of this TapiNotificationNotificationWrapper. + + + :return: The notification of this TapiNotificationNotificationWrapper. + :rtype: TapiNotificationNotification + """ + return self._notification + + @notification.setter + def notification(self, notification: TapiNotificationNotification): + """Sets the notification of this TapiNotificationNotificationWrapper. + + + :param notification: The notification of this TapiNotificationNotificationWrapper. + :type notification: TapiNotificationNotification + """ + + self._notification = notification diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_object_type.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_object_type.py new file mode 100644 index 0000000000000000000000000000000000000000..973801635db2cfe8682a4d04cd38d928f33895f9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_object_type.py @@ -0,0 +1,68 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationObjectType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + TOPOLOGY = "TOPOLOGY" + NODE = "NODE" + LINK = "LINK" + CONNECTION = "CONNECTION" + PATH = "PATH" + CONNECTIVITY_SERVICE = "CONNECTIVITY_SERVICE" + VIRTUAL_NETWORK_SERVICE = "VIRTUAL_NETWORK_SERVICE" + PATH_COMPUTATION_SERVICE = "PATH_COMPUTATION_SERVICE" + NODE_EDGE_POINT = "NODE_EDGE_POINT" + SERVICE_INTERFACE_POINT = "SERVICE_INTERFACE_POINT" + CONNECTION_END_POINT = "CONNECTION_END_POINT" + MAINTENANCE_ENTITY_GROUP = "MAINTENANCE_ENTITY_GROUP" + MAINTENANCE_ENTITY = "MAINTENANCE_ENTITY" + MEG_END_POINT = "MEG_END_POINT" + MEG_INTERMEDIATE_POINT = "MEG_INTERMEDIATE_POINT" + SWITCH_CONTROL = "SWITCH_CONTROL" + SWITCH = "SWITCH" + ROUTE = "ROUTE" + NODE_RULE_GROUP = "NODE_RULE_GROUP" + INTER_RULE_GROUP = "INTER_RULE_GROUP" + RULE = "RULE" + OAM_JOB = "OAM_JOB" + ACCESS_PORT = "ACCESS_PORT" + EQUIPMENT = "EQUIPMENT" + HOLDER = "HOLDER" + PHYSICAL_SPAN = "PHYSICAL_SPAN" + ABSTRACT_STRAND = "ABSTRACT_STRAND" + DEVICE = "DEVICE" + def __init__(self): # noqa: E501 + """TapiNotificationObjectType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationObjectType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.ObjectType of this TapiNotificationObjectType. # noqa: E501 + :rtype: TapiNotificationObjectType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_severity_type.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_severity_type.py new file mode 100644 index 0000000000000000000000000000000000000000..fb852664e1016543af88543c85e1103ee9e64959 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_severity_type.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationPerceivedSeverityType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + CRITICAL = "CRITICAL" + MAJOR = "MAJOR" + MINOR = "MINOR" + WARNING = "WARNING" + CLEARED = "CLEARED" + def __init__(self): # noqa: E501 + """TapiNotificationPerceivedSeverityType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationPerceivedSeverityType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.PerceivedSeverityType of this TapiNotificationPerceivedSeverityType. # noqa: E501 + :rtype: TapiNotificationPerceivedSeverityType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_tca_severity.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_tca_severity.py new file mode 100644 index 0000000000000000000000000000000000000000..0dc2e13a4765af8537b95728cb630396b2c8ba01 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_perceived_tca_severity.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationPerceivedTcaSeverity(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + WARNING = "WARNING" + CLEAR = "CLEAR" + def __init__(self): # noqa: E501 + """TapiNotificationPerceivedTcaSeverity - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationPerceivedTcaSeverity': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.PerceivedTcaSeverity of this TapiNotificationPerceivedTcaSeverity. # noqa: E501 + :rtype: TapiNotificationPerceivedTcaSeverity + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_service_affecting.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_service_affecting.py new file mode 100644 index 0000000000000000000000000000000000000000..fb2253894af156e17ede625ae8c703e9fb3e5521 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_service_affecting.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationServiceAffecting(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + SERVICE_AFFECTING = "SERVICE_AFFECTING" + NOT_SERVICE_AFFECTING = "NOT_SERVICE_AFFECTING" + UNKNOWN = "UNKNOWN" + def __init__(self): # noqa: E501 + """TapiNotificationServiceAffecting - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationServiceAffecting': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.ServiceAffecting of this TapiNotificationServiceAffecting. # noqa: E501 + :rtype: TapiNotificationServiceAffecting + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_source_indicator.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_source_indicator.py new file mode 100644 index 0000000000000000000000000000000000000000..5f0bcedbfd814966fe5dbdc9063f4c65e68da66e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_source_indicator.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationSourceIndicator(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + RESOURCE_OPERATION = "RESOURCE_OPERATION" + MANAGEMENT_OPERATION = "MANAGEMENT_OPERATION" + UNKNOWN = "UNKNOWN" + def __init__(self): # noqa: E501 + """TapiNotificationSourceIndicator - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationSourceIndicator': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.SourceIndicator of this TapiNotificationSourceIndicator. # noqa: E501 + :rtype: TapiNotificationSourceIndicator + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter.py new file mode 100644 index 0000000000000000000000000000000000000000..e26921ceffedf65344e70c477fcc5d998c14fcf5 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter.py @@ -0,0 +1,237 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_notification_notification_type import TapiNotificationNotificationType # noqa: F401,E501 +from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationSubscriptionFilter(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, requested_notification_types: List[TapiNotificationNotificationType]=None, requested_object_identifier: List[str]=None, requested_layer_protocols: List[TapiCommonLayerProtocolName]=None, include_content: bool=False, requested_object_types: List[TapiNotificationObjectType]=None): # noqa: E501 + """TapiNotificationSubscriptionFilter - a model defined in Swagger + + :param name: The name of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type local_id: str + :param requested_notification_types: The requested_notification_types of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type requested_notification_types: List[TapiNotificationNotificationType] + :param requested_object_identifier: The requested_object_identifier of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type requested_object_identifier: List[str] + :param requested_layer_protocols: The requested_layer_protocols of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type requested_layer_protocols: List[TapiCommonLayerProtocolName] + :param include_content: The include_content of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type include_content: bool + :param requested_object_types: The requested_object_types of this TapiNotificationSubscriptionFilter. # noqa: E501 + :type requested_object_types: List[TapiNotificationObjectType] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'requested_notification_types': List[TapiNotificationNotificationType], + 'requested_object_identifier': List[str], + 'requested_layer_protocols': List[TapiCommonLayerProtocolName], + 'include_content': bool, + 'requested_object_types': List[TapiNotificationObjectType] + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'requested_notification_types': 'requested-notification-types', + 'requested_object_identifier': 'requested-object-identifier', + 'requested_layer_protocols': 'requested-layer-protocols', + 'include_content': 'include-content', + 'requested_object_types': 'requested-object-types' + } + self._name = name + self._local_id = local_id + self._requested_notification_types = requested_notification_types + self._requested_object_identifier = requested_object_identifier + self._requested_layer_protocols = requested_layer_protocols + self._include_content = include_content + self._requested_object_types = requested_object_types + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationSubscriptionFilter': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.SubscriptionFilter of this TapiNotificationSubscriptionFilter. # noqa: E501 + :rtype: TapiNotificationSubscriptionFilter + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiNotificationSubscriptionFilter. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiNotificationSubscriptionFilter. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiNotificationSubscriptionFilter. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiNotificationSubscriptionFilter. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :return: The local_id of this TapiNotificationSubscriptionFilter. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :param local_id: The local_id of this TapiNotificationSubscriptionFilter. + :type local_id: str + """ + + self._local_id = local_id + + @property + def requested_notification_types(self) -> List[TapiNotificationNotificationType]: + """Gets the requested_notification_types of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :return: The requested_notification_types of this TapiNotificationSubscriptionFilter. + :rtype: List[TapiNotificationNotificationType] + """ + return self._requested_notification_types + + @requested_notification_types.setter + def requested_notification_types(self, requested_notification_types: List[TapiNotificationNotificationType]): + """Sets the requested_notification_types of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :param requested_notification_types: The requested_notification_types of this TapiNotificationSubscriptionFilter. + :type requested_notification_types: List[TapiNotificationNotificationType] + """ + + self._requested_notification_types = requested_notification_types + + @property + def requested_object_identifier(self) -> List[str]: + """Gets the requested_object_identifier of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :return: The requested_object_identifier of this TapiNotificationSubscriptionFilter. + :rtype: List[str] + """ + return self._requested_object_identifier + + @requested_object_identifier.setter + def requested_object_identifier(self, requested_object_identifier: List[str]): + """Sets the requested_object_identifier of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :param requested_object_identifier: The requested_object_identifier of this TapiNotificationSubscriptionFilter. + :type requested_object_identifier: List[str] + """ + + self._requested_object_identifier = requested_object_identifier + + @property + def requested_layer_protocols(self) -> List[TapiCommonLayerProtocolName]: + """Gets the requested_layer_protocols of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :return: The requested_layer_protocols of this TapiNotificationSubscriptionFilter. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._requested_layer_protocols + + @requested_layer_protocols.setter + def requested_layer_protocols(self, requested_layer_protocols: List[TapiCommonLayerProtocolName]): + """Sets the requested_layer_protocols of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :param requested_layer_protocols: The requested_layer_protocols of this TapiNotificationSubscriptionFilter. + :type requested_layer_protocols: List[TapiCommonLayerProtocolName] + """ + + self._requested_layer_protocols = requested_layer_protocols + + @property + def include_content(self) -> bool: + """Gets the include_content of this TapiNotificationSubscriptionFilter. + + Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage) # noqa: E501 + + :return: The include_content of this TapiNotificationSubscriptionFilter. + :rtype: bool + """ + return self._include_content + + @include_content.setter + def include_content(self, include_content: bool): + """Sets the include_content of this TapiNotificationSubscriptionFilter. + + Indicates whether the published Notification includes content or just the Notification Id (which enables retrieval of the notification at the later stage) # noqa: E501 + + :param include_content: The include_content of this TapiNotificationSubscriptionFilter. + :type include_content: bool + """ + + self._include_content = include_content + + @property + def requested_object_types(self) -> List[TapiNotificationObjectType]: + """Gets the requested_object_types of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :return: The requested_object_types of this TapiNotificationSubscriptionFilter. + :rtype: List[TapiNotificationObjectType] + """ + return self._requested_object_types + + @requested_object_types.setter + def requested_object_types(self, requested_object_types: List[TapiNotificationObjectType]): + """Sets the requested_object_types of this TapiNotificationSubscriptionFilter. + + none # noqa: E501 + + :param requested_object_types: The requested_object_types of this TapiNotificationSubscriptionFilter. + :type requested_object_types: List[TapiNotificationObjectType] + """ + + self._requested_object_types = requested_object_types diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..4320001ca23ebb84f774f3c9e634523439f90423 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_filter_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_subscription_filter import TapiNotificationSubscriptionFilter # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationSubscriptionFilterWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_filter: TapiNotificationSubscriptionFilter=None): # noqa: E501 + """TapiNotificationSubscriptionFilterWrapper - a model defined in Swagger + + :param subscription_filter: The subscription_filter of this TapiNotificationSubscriptionFilterWrapper. # noqa: E501 + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + self.swagger_types = { + 'subscription_filter': TapiNotificationSubscriptionFilter + } + + self.attribute_map = { + 'subscription_filter': 'subscription-filter' + } + self._subscription_filter = subscription_filter + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationSubscriptionFilterWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.SubscriptionFilterWrapper of this TapiNotificationSubscriptionFilterWrapper. # noqa: E501 + :rtype: TapiNotificationSubscriptionFilterWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_filter(self) -> TapiNotificationSubscriptionFilter: + """Gets the subscription_filter of this TapiNotificationSubscriptionFilterWrapper. + + + :return: The subscription_filter of this TapiNotificationSubscriptionFilterWrapper. + :rtype: TapiNotificationSubscriptionFilter + """ + return self._subscription_filter + + @subscription_filter.setter + def subscription_filter(self, subscription_filter: TapiNotificationSubscriptionFilter): + """Sets the subscription_filter of this TapiNotificationSubscriptionFilterWrapper. + + + :param subscription_filter: The subscription_filter of this TapiNotificationSubscriptionFilterWrapper. + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + + self._subscription_filter = subscription_filter diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_state.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_state.py new file mode 100644 index 0000000000000000000000000000000000000000..80f69c5f51085ca4512a622ca253dd634ac2360f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_subscription_state.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationSubscriptionState(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + SUSPENDED = "SUSPENDED" + ACTIVE = "ACTIVE" + def __init__(self): # noqa: E501 + """TapiNotificationSubscriptionState - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationSubscriptionState': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.SubscriptionState of this TapiNotificationSubscriptionState. # noqa: E501 + :rtype: TapiNotificationSubscriptionState + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info.py new file mode 100644 index 0000000000000000000000000000000000000000..9043ceee54d8c6c18dc58ef10f77fa1e1efd5b4b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info.py @@ -0,0 +1,230 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_perceived_tca_severity import TapiNotificationPerceivedTcaSeverity # noqa: F401,E501 +from tapi_server.models.tapi_notification_threshold_crossing_type import TapiNotificationThresholdCrossingType # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationTcaInfo(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, threshold_crossing: TapiNotificationThresholdCrossingType=None, threshold_parameter: str=None, is_transient: bool=False, threshold_value: int=None, perceived_severity: TapiNotificationPerceivedTcaSeverity=None, suspect_interval_flag: bool=False, measurement_interval: str=None): # noqa: E501 + """TapiNotificationTcaInfo - a model defined in Swagger + + :param threshold_crossing: The threshold_crossing of this TapiNotificationTcaInfo. # noqa: E501 + :type threshold_crossing: TapiNotificationThresholdCrossingType + :param threshold_parameter: The threshold_parameter of this TapiNotificationTcaInfo. # noqa: E501 + :type threshold_parameter: str + :param is_transient: The is_transient of this TapiNotificationTcaInfo. # noqa: E501 + :type is_transient: bool + :param threshold_value: The threshold_value of this TapiNotificationTcaInfo. # noqa: E501 + :type threshold_value: int + :param perceived_severity: The perceived_severity of this TapiNotificationTcaInfo. # noqa: E501 + :type perceived_severity: TapiNotificationPerceivedTcaSeverity + :param suspect_interval_flag: The suspect_interval_flag of this TapiNotificationTcaInfo. # noqa: E501 + :type suspect_interval_flag: bool + :param measurement_interval: The measurement_interval of this TapiNotificationTcaInfo. # noqa: E501 + :type measurement_interval: str + """ + self.swagger_types = { + 'threshold_crossing': TapiNotificationThresholdCrossingType, + 'threshold_parameter': str, + 'is_transient': bool, + 'threshold_value': int, + 'perceived_severity': TapiNotificationPerceivedTcaSeverity, + 'suspect_interval_flag': bool, + 'measurement_interval': str + } + + self.attribute_map = { + 'threshold_crossing': 'threshold-crossing', + 'threshold_parameter': 'threshold-parameter', + 'is_transient': 'is-transient', + 'threshold_value': 'threshold-value', + 'perceived_severity': 'perceived-severity', + 'suspect_interval_flag': 'suspect-interval-flag', + 'measurement_interval': 'measurement-interval' + } + self._threshold_crossing = threshold_crossing + self._threshold_parameter = threshold_parameter + self._is_transient = is_transient + self._threshold_value = threshold_value + self._perceived_severity = perceived_severity + self._suspect_interval_flag = suspect_interval_flag + self._measurement_interval = measurement_interval + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationTcaInfo': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.TcaInfo of this TapiNotificationTcaInfo. # noqa: E501 + :rtype: TapiNotificationTcaInfo + """ + return util.deserialize_model(dikt, cls) + + @property + def threshold_crossing(self) -> TapiNotificationThresholdCrossingType: + """Gets the threshold_crossing of this TapiNotificationTcaInfo. + + + :return: The threshold_crossing of this TapiNotificationTcaInfo. + :rtype: TapiNotificationThresholdCrossingType + """ + return self._threshold_crossing + + @threshold_crossing.setter + def threshold_crossing(self, threshold_crossing: TapiNotificationThresholdCrossingType): + """Sets the threshold_crossing of this TapiNotificationTcaInfo. + + + :param threshold_crossing: The threshold_crossing of this TapiNotificationTcaInfo. + :type threshold_crossing: TapiNotificationThresholdCrossingType + """ + + self._threshold_crossing = threshold_crossing + + @property + def threshold_parameter(self) -> str: + """Gets the threshold_parameter of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :return: The threshold_parameter of this TapiNotificationTcaInfo. + :rtype: str + """ + return self._threshold_parameter + + @threshold_parameter.setter + def threshold_parameter(self, threshold_parameter: str): + """Sets the threshold_parameter of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :param threshold_parameter: The threshold_parameter of this TapiNotificationTcaInfo. + :type threshold_parameter: str + """ + + self._threshold_parameter = threshold_parameter + + @property + def is_transient(self) -> bool: + """Gets the is_transient of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :return: The is_transient of this TapiNotificationTcaInfo. + :rtype: bool + """ + return self._is_transient + + @is_transient.setter + def is_transient(self, is_transient: bool): + """Sets the is_transient of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :param is_transient: The is_transient of this TapiNotificationTcaInfo. + :type is_transient: bool + """ + + self._is_transient = is_transient + + @property + def threshold_value(self) -> int: + """Gets the threshold_value of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :return: The threshold_value of this TapiNotificationTcaInfo. + :rtype: int + """ + return self._threshold_value + + @threshold_value.setter + def threshold_value(self, threshold_value: int): + """Sets the threshold_value of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :param threshold_value: The threshold_value of this TapiNotificationTcaInfo. + :type threshold_value: int + """ + + self._threshold_value = threshold_value + + @property + def perceived_severity(self) -> TapiNotificationPerceivedTcaSeverity: + """Gets the perceived_severity of this TapiNotificationTcaInfo. + + + :return: The perceived_severity of this TapiNotificationTcaInfo. + :rtype: TapiNotificationPerceivedTcaSeverity + """ + return self._perceived_severity + + @perceived_severity.setter + def perceived_severity(self, perceived_severity: TapiNotificationPerceivedTcaSeverity): + """Sets the perceived_severity of this TapiNotificationTcaInfo. + + + :param perceived_severity: The perceived_severity of this TapiNotificationTcaInfo. + :type perceived_severity: TapiNotificationPerceivedTcaSeverity + """ + + self._perceived_severity = perceived_severity + + @property + def suspect_interval_flag(self) -> bool: + """Gets the suspect_interval_flag of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :return: The suspect_interval_flag of this TapiNotificationTcaInfo. + :rtype: bool + """ + return self._suspect_interval_flag + + @suspect_interval_flag.setter + def suspect_interval_flag(self, suspect_interval_flag: bool): + """Sets the suspect_interval_flag of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :param suspect_interval_flag: The suspect_interval_flag of this TapiNotificationTcaInfo. + :type suspect_interval_flag: bool + """ + + self._suspect_interval_flag = suspect_interval_flag + + @property + def measurement_interval(self) -> str: + """Gets the measurement_interval of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :return: The measurement_interval of this TapiNotificationTcaInfo. + :rtype: str + """ + return self._measurement_interval + + @measurement_interval.setter + def measurement_interval(self, measurement_interval: str): + """Sets the measurement_interval of this TapiNotificationTcaInfo. + + none # noqa: E501 + + :param measurement_interval: The measurement_interval of this TapiNotificationTcaInfo. + :type measurement_interval: str + """ + + self._measurement_interval = measurement_interval diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..b607e088d46fd14cbb5deb37df8f9f02a0bfc22b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_tca_info_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_tca_info import TapiNotificationTcaInfo # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationTcaInfoWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tca_info: TapiNotificationTcaInfo=None): # noqa: E501 + """TapiNotificationTcaInfoWrapper - a model defined in Swagger + + :param tca_info: The tca_info of this TapiNotificationTcaInfoWrapper. # noqa: E501 + :type tca_info: TapiNotificationTcaInfo + """ + self.swagger_types = { + 'tca_info': TapiNotificationTcaInfo + } + + self.attribute_map = { + 'tca_info': 'tca-info' + } + self._tca_info = tca_info + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationTcaInfoWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.TcaInfoWrapper of this TapiNotificationTcaInfoWrapper. # noqa: E501 + :rtype: TapiNotificationTcaInfoWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tca_info(self) -> TapiNotificationTcaInfo: + """Gets the tca_info of this TapiNotificationTcaInfoWrapper. + + + :return: The tca_info of this TapiNotificationTcaInfoWrapper. + :rtype: TapiNotificationTcaInfo + """ + return self._tca_info + + @tca_info.setter + def tca_info(self, tca_info: TapiNotificationTcaInfo): + """Sets the tca_info of this TapiNotificationTcaInfoWrapper. + + + :param tca_info: The tca_info of this TapiNotificationTcaInfoWrapper. + :type tca_info: TapiNotificationTcaInfo + """ + + self._tca_info = tca_info diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_threshold_crossing_type.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_threshold_crossing_type.py new file mode 100644 index 0000000000000000000000000000000000000000..7082427638817227cbdb964d0c7d55459376938e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_threshold_crossing_type.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiNotificationThresholdCrossingType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + THRESHOLD_ABOVE = "THRESHOLD_ABOVE" + THRESHOLD_BELOW = "THRESHOLD_BELOW" + CLEARED = "CLEARED" + def __init__(self): # noqa: E501 + """TapiNotificationThresholdCrossingType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationThresholdCrossingType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.ThresholdCrossingType of this TapiNotificationThresholdCrossingType. # noqa: E501 + :rtype: TapiNotificationThresholdCrossingType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_update_notification_subscription_service.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_update_notification_subscription_service.py new file mode 100644 index 0000000000000000000000000000000000000000..a784b067a36151c912470b2c234b31cdc33e4762 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_update_notification_subscription_service.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_updatenotificationsubscriptionservice_output import TapiNotificationUpdatenotificationsubscriptionserviceOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationUpdateNotificationSubscriptionService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiNotificationUpdatenotificationsubscriptionserviceOutput=None): # noqa: E501 + """TapiNotificationUpdateNotificationSubscriptionService - a model defined in Swagger + + :param output: The output of this TapiNotificationUpdateNotificationSubscriptionService. # noqa: E501 + :type output: TapiNotificationUpdatenotificationsubscriptionserviceOutput + """ + self.swagger_types = { + 'output': TapiNotificationUpdatenotificationsubscriptionserviceOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationUpdateNotificationSubscriptionService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.UpdateNotificationSubscriptionService of this TapiNotificationUpdateNotificationSubscriptionService. # noqa: E501 + :rtype: TapiNotificationUpdateNotificationSubscriptionService + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiNotificationUpdatenotificationsubscriptionserviceOutput: + """Gets the output of this TapiNotificationUpdateNotificationSubscriptionService. + + + :return: The output of this TapiNotificationUpdateNotificationSubscriptionService. + :rtype: TapiNotificationUpdatenotificationsubscriptionserviceOutput + """ + return self._output + + @output.setter + def output(self, output: TapiNotificationUpdatenotificationsubscriptionserviceOutput): + """Sets the output of this TapiNotificationUpdateNotificationSubscriptionService. + + + :param output: The output of this TapiNotificationUpdateNotificationSubscriptionService. + :type output: TapiNotificationUpdatenotificationsubscriptionserviceOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_input.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_input.py new file mode 100644 index 0000000000000000000000000000000000000000..c6a1b1e4e980157be32a71692fe6a40b2e098bfd --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_input.py @@ -0,0 +1,118 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_subscription_filter import TapiNotificationSubscriptionFilter # noqa: F401,E501 +from tapi_server.models.tapi_notification_subscription_state import TapiNotificationSubscriptionState # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationUpdatenotificationsubscriptionserviceInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_state: TapiNotificationSubscriptionState=None, subscription_filter: TapiNotificationSubscriptionFilter=None, subscription_id_or_name: str=None): # noqa: E501 + """TapiNotificationUpdatenotificationsubscriptionserviceInput - a model defined in Swagger + + :param subscription_state: The subscription_state of this TapiNotificationUpdatenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_state: TapiNotificationSubscriptionState + :param subscription_filter: The subscription_filter of this TapiNotificationUpdatenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_filter: TapiNotificationSubscriptionFilter + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationUpdatenotificationsubscriptionserviceInput. # noqa: E501 + :type subscription_id_or_name: str + """ + self.swagger_types = { + 'subscription_state': TapiNotificationSubscriptionState, + 'subscription_filter': TapiNotificationSubscriptionFilter, + 'subscription_id_or_name': str + } + + self.attribute_map = { + 'subscription_state': 'subscription-state', + 'subscription_filter': 'subscription-filter', + 'subscription_id_or_name': 'subscription-id-or-name' + } + self._subscription_state = subscription_state + self._subscription_filter = subscription_filter + self._subscription_id_or_name = subscription_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationUpdatenotificationsubscriptionserviceInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.updatenotificationsubscriptionservice.Input of this TapiNotificationUpdatenotificationsubscriptionserviceInput. # noqa: E501 + :rtype: TapiNotificationUpdatenotificationsubscriptionserviceInput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_state(self) -> TapiNotificationSubscriptionState: + """Gets the subscription_state of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + + :return: The subscription_state of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :rtype: TapiNotificationSubscriptionState + """ + return self._subscription_state + + @subscription_state.setter + def subscription_state(self, subscription_state: TapiNotificationSubscriptionState): + """Sets the subscription_state of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + + :param subscription_state: The subscription_state of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :type subscription_state: TapiNotificationSubscriptionState + """ + + self._subscription_state = subscription_state + + @property + def subscription_filter(self) -> TapiNotificationSubscriptionFilter: + """Gets the subscription_filter of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + + :return: The subscription_filter of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :rtype: TapiNotificationSubscriptionFilter + """ + return self._subscription_filter + + @subscription_filter.setter + def subscription_filter(self, subscription_filter: TapiNotificationSubscriptionFilter): + """Sets the subscription_filter of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + + :param subscription_filter: The subscription_filter of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :type subscription_filter: TapiNotificationSubscriptionFilter + """ + + self._subscription_filter = subscription_filter + + @property + def subscription_id_or_name(self) -> str: + """Gets the subscription_id_or_name of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + none # noqa: E501 + + :return: The subscription_id_or_name of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :rtype: str + """ + return self._subscription_id_or_name + + @subscription_id_or_name.setter + def subscription_id_or_name(self, subscription_id_or_name: str): + """Sets the subscription_id_or_name of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + + none # noqa: E501 + + :param subscription_id_or_name: The subscription_id_or_name of this TapiNotificationUpdatenotificationsubscriptionserviceInput. + :type subscription_id_or_name: str + """ + + self._subscription_id_or_name = subscription_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_output.py b/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_output.py new file mode 100644 index 0000000000000000000000000000000000000000..fc0ba68399d51b381faa2adcb6a2899fcc0a8554 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_notification_updatenotificationsubscriptionservice_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_notification_notification_subscription_service import TapiNotificationNotificationSubscriptionService # noqa: F401,E501 +from tapi_server import util + + +class TapiNotificationUpdatenotificationsubscriptionserviceOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, subscription_service: TapiNotificationNotificationSubscriptionService=None): # noqa: E501 + """TapiNotificationUpdatenotificationsubscriptionserviceOutput - a model defined in Swagger + + :param subscription_service: The subscription_service of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. # noqa: E501 + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + self.swagger_types = { + 'subscription_service': TapiNotificationNotificationSubscriptionService + } + + self.attribute_map = { + 'subscription_service': 'subscription-service' + } + self._subscription_service = subscription_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiNotificationUpdatenotificationsubscriptionserviceOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.notification.updatenotificationsubscriptionservice.Output of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. # noqa: E501 + :rtype: TapiNotificationUpdatenotificationsubscriptionserviceOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def subscription_service(self) -> TapiNotificationNotificationSubscriptionService: + """Gets the subscription_service of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. + + + :return: The subscription_service of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. + :rtype: TapiNotificationNotificationSubscriptionService + """ + return self._subscription_service + + @subscription_service.setter + def subscription_service(self, subscription_service: TapiNotificationNotificationSubscriptionService): + """Sets the subscription_service of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. + + + :param subscription_service: The subscription_service of this TapiNotificationUpdatenotificationsubscriptionserviceOutput. + :type subscription_service: TapiNotificationNotificationSubscriptionService + """ + + self._subscription_service = subscription_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_compute_p2_p_path.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_compute_p2_p_path.py new file mode 100644 index 0000000000000000000000000000000000000000..a3630b3b370eda154618831f0e399d9f2df8cde1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_compute_p2_p_path.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_computep2ppath_output import TapiPathComputationComputep2ppathOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationComputeP2PPath(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiPathComputationComputep2ppathOutput=None): # noqa: E501 + """TapiPathComputationComputeP2PPath - a model defined in Swagger + + :param output: The output of this TapiPathComputationComputeP2PPath. # noqa: E501 + :type output: TapiPathComputationComputep2ppathOutput + """ + self.swagger_types = { + 'output': TapiPathComputationComputep2ppathOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationComputeP2PPath': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.ComputeP2PPath of this TapiPathComputationComputeP2PPath. # noqa: E501 + :rtype: TapiPathComputationComputeP2PPath + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiPathComputationComputep2ppathOutput: + """Gets the output of this TapiPathComputationComputeP2PPath. + + + :return: The output of this TapiPathComputationComputeP2PPath. + :rtype: TapiPathComputationComputep2ppathOutput + """ + return self._output + + @output.setter + def output(self, output: TapiPathComputationComputep2ppathOutput): + """Sets the output of this TapiPathComputationComputeP2PPath. + + + :param output: The output of this TapiPathComputationComputeP2PPath. + :type output: TapiPathComputationComputep2ppathOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_input.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_input.py new file mode 100644 index 0000000000000000000000000000000000000000..1e934cbdca0d23f23ef282da4e0863f14badc972 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_input.py @@ -0,0 +1,146 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_objective_function import TapiPathComputationPathObjectiveFunction # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_service_end_point import TapiPathComputationPathServiceEndPoint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationComputep2ppathInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_constraint: TapiPathComputationTopologyConstraint=None, routing_constraint: TapiPathComputationRoutingConstraint=None, objective_function: TapiPathComputationPathObjectiveFunction=None, sep: List[TapiPathComputationPathServiceEndPoint]=None): # noqa: E501 + """TapiPathComputationComputep2ppathInput - a model defined in Swagger + + :param topology_constraint: The topology_constraint of this TapiPathComputationComputep2ppathInput. # noqa: E501 + :type topology_constraint: TapiPathComputationTopologyConstraint + :param routing_constraint: The routing_constraint of this TapiPathComputationComputep2ppathInput. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param objective_function: The objective_function of this TapiPathComputationComputep2ppathInput. # noqa: E501 + :type objective_function: TapiPathComputationPathObjectiveFunction + :param sep: The sep of this TapiPathComputationComputep2ppathInput. # noqa: E501 + :type sep: List[TapiPathComputationPathServiceEndPoint] + """ + self.swagger_types = { + 'topology_constraint': TapiPathComputationTopologyConstraint, + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'objective_function': TapiPathComputationPathObjectiveFunction, + 'sep': List[TapiPathComputationPathServiceEndPoint] + } + + self.attribute_map = { + 'topology_constraint': 'topology-constraint', + 'routing_constraint': 'routing-constraint', + 'objective_function': 'objective-function', + 'sep': 'sep' + } + self._topology_constraint = topology_constraint + self._routing_constraint = routing_constraint + self._objective_function = objective_function + self._sep = sep + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationComputep2ppathInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.computep2ppath.Input of this TapiPathComputationComputep2ppathInput. # noqa: E501 + :rtype: TapiPathComputationComputep2ppathInput + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_constraint(self) -> TapiPathComputationTopologyConstraint: + """Gets the topology_constraint of this TapiPathComputationComputep2ppathInput. + + + :return: The topology_constraint of this TapiPathComputationComputep2ppathInput. + :rtype: TapiPathComputationTopologyConstraint + """ + return self._topology_constraint + + @topology_constraint.setter + def topology_constraint(self, topology_constraint: TapiPathComputationTopologyConstraint): + """Sets the topology_constraint of this TapiPathComputationComputep2ppathInput. + + + :param topology_constraint: The topology_constraint of this TapiPathComputationComputep2ppathInput. + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + + self._topology_constraint = topology_constraint + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiPathComputationComputep2ppathInput. + + + :return: The routing_constraint of this TapiPathComputationComputep2ppathInput. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiPathComputationComputep2ppathInput. + + + :param routing_constraint: The routing_constraint of this TapiPathComputationComputep2ppathInput. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def objective_function(self) -> TapiPathComputationPathObjectiveFunction: + """Gets the objective_function of this TapiPathComputationComputep2ppathInput. + + + :return: The objective_function of this TapiPathComputationComputep2ppathInput. + :rtype: TapiPathComputationPathObjectiveFunction + """ + return self._objective_function + + @objective_function.setter + def objective_function(self, objective_function: TapiPathComputationPathObjectiveFunction): + """Sets the objective_function of this TapiPathComputationComputep2ppathInput. + + + :param objective_function: The objective_function of this TapiPathComputationComputep2ppathInput. + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + + self._objective_function = objective_function + + @property + def sep(self) -> List[TapiPathComputationPathServiceEndPoint]: + """Gets the sep of this TapiPathComputationComputep2ppathInput. + + none # noqa: E501 + + :return: The sep of this TapiPathComputationComputep2ppathInput. + :rtype: List[TapiPathComputationPathServiceEndPoint] + """ + return self._sep + + @sep.setter + def sep(self, sep: List[TapiPathComputationPathServiceEndPoint]): + """Sets the sep of this TapiPathComputationComputep2ppathInput. + + none # noqa: E501 + + :param sep: The sep of this TapiPathComputationComputep2ppathInput. + :type sep: List[TapiPathComputationPathServiceEndPoint] + """ + + self._sep = sep diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_output.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_output.py new file mode 100644 index 0000000000000000000000000000000000000000..a89dc2657d6b17d654cead1a40e5d7d46a2b420d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_computep2ppath_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationComputep2ppathOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiPathComputationPathComputationService=None): # noqa: E501 + """TapiPathComputationComputep2ppathOutput - a model defined in Swagger + + :param service: The service of this TapiPathComputationComputep2ppathOutput. # noqa: E501 + :type service: TapiPathComputationPathComputationService + """ + self.swagger_types = { + 'service': TapiPathComputationPathComputationService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationComputep2ppathOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.computep2ppath.Output of this TapiPathComputationComputep2ppathOutput. # noqa: E501 + :rtype: TapiPathComputationComputep2ppathOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiPathComputationPathComputationService: + """Gets the service of this TapiPathComputationComputep2ppathOutput. + + + :return: The service of this TapiPathComputationComputep2ppathOutput. + :rtype: TapiPathComputationPathComputationService + """ + return self._service + + @service.setter + def service(self, service: TapiPathComputationPathComputationService): + """Sets the service of this TapiPathComputationComputep2ppathOutput. + + + :param service: The service of this TapiPathComputationComputep2ppathOutput. + :type service: TapiPathComputationPathComputationService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_context_augmentation2.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_context_augmentation2.py new file mode 100644 index 0000000000000000000000000000000000000000..846fd8190406e4e88a9a7151f50200a8caf3059f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_context_augmentation2.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_context import TapiPathComputationPathComputationContext # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationContextAugmentation2(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path_computation_context: TapiPathComputationPathComputationContext=None): # noqa: E501 + """TapiPathComputationContextAugmentation2 - a model defined in Swagger + + :param path_computation_context: The path_computation_context of this TapiPathComputationContextAugmentation2. # noqa: E501 + :type path_computation_context: TapiPathComputationPathComputationContext + """ + self.swagger_types = { + 'path_computation_context': TapiPathComputationPathComputationContext + } + + self.attribute_map = { + 'path_computation_context': 'path-computation-context' + } + self._path_computation_context = path_computation_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationContextAugmentation2': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.ContextAugmentation2 of this TapiPathComputationContextAugmentation2. # noqa: E501 + :rtype: TapiPathComputationContextAugmentation2 + """ + return util.deserialize_model(dikt, cls) + + @property + def path_computation_context(self) -> TapiPathComputationPathComputationContext: + """Gets the path_computation_context of this TapiPathComputationContextAugmentation2. + + + :return: The path_computation_context of this TapiPathComputationContextAugmentation2. + :rtype: TapiPathComputationPathComputationContext + """ + return self._path_computation_context + + @path_computation_context.setter + def path_computation_context(self, path_computation_context: TapiPathComputationPathComputationContext): + """Sets the path_computation_context of this TapiPathComputationContextAugmentation2. + + + :param path_computation_context: The path_computation_context of this TapiPathComputationContextAugmentation2. + :type path_computation_context: TapiPathComputationPathComputationContext + """ + + self._path_computation_context = path_computation_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_delete_p2_p_path.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_delete_p2_p_path.py new file mode 100644 index 0000000000000000000000000000000000000000..5af4467a2927cde5085f14bb97270b1b962fa105 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_delete_p2_p_path.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_deletep2ppath_output import TapiPathComputationDeletep2ppathOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationDeleteP2PPath(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiPathComputationDeletep2ppathOutput=None): # noqa: E501 + """TapiPathComputationDeleteP2PPath - a model defined in Swagger + + :param output: The output of this TapiPathComputationDeleteP2PPath. # noqa: E501 + :type output: TapiPathComputationDeletep2ppathOutput + """ + self.swagger_types = { + 'output': TapiPathComputationDeletep2ppathOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationDeleteP2PPath': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.DeleteP2PPath of this TapiPathComputationDeleteP2PPath. # noqa: E501 + :rtype: TapiPathComputationDeleteP2PPath + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiPathComputationDeletep2ppathOutput: + """Gets the output of this TapiPathComputationDeleteP2PPath. + + + :return: The output of this TapiPathComputationDeleteP2PPath. + :rtype: TapiPathComputationDeletep2ppathOutput + """ + return self._output + + @output.setter + def output(self, output: TapiPathComputationDeletep2ppathOutput): + """Sets the output of this TapiPathComputationDeleteP2PPath. + + + :param output: The output of this TapiPathComputationDeleteP2PPath. + :type output: TapiPathComputationDeletep2ppathOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_input.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_input.py new file mode 100644 index 0000000000000000000000000000000000000000..e09c60312cd29b8005ad7dcc1cc2c2b526ab478e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiPathComputationDeletep2ppathInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path_id_or_name: str=None): # noqa: E501 + """TapiPathComputationDeletep2ppathInput - a model defined in Swagger + + :param path_id_or_name: The path_id_or_name of this TapiPathComputationDeletep2ppathInput. # noqa: E501 + :type path_id_or_name: str + """ + self.swagger_types = { + 'path_id_or_name': str + } + + self.attribute_map = { + 'path_id_or_name': 'path-id-or-name' + } + self._path_id_or_name = path_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationDeletep2ppathInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.deletep2ppath.Input of this TapiPathComputationDeletep2ppathInput. # noqa: E501 + :rtype: TapiPathComputationDeletep2ppathInput + """ + return util.deserialize_model(dikt, cls) + + @property + def path_id_or_name(self) -> str: + """Gets the path_id_or_name of this TapiPathComputationDeletep2ppathInput. + + none # noqa: E501 + + :return: The path_id_or_name of this TapiPathComputationDeletep2ppathInput. + :rtype: str + """ + return self._path_id_or_name + + @path_id_or_name.setter + def path_id_or_name(self, path_id_or_name: str): + """Sets the path_id_or_name of this TapiPathComputationDeletep2ppathInput. + + none # noqa: E501 + + :param path_id_or_name: The path_id_or_name of this TapiPathComputationDeletep2ppathInput. + :type path_id_or_name: str + """ + + self._path_id_or_name = path_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_output.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_output.py new file mode 100644 index 0000000000000000000000000000000000000000..fab025bea92a859f23fe917e3bead9101b7b45a1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_deletep2ppath_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationDeletep2ppathOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiPathComputationPathComputationService=None): # noqa: E501 + """TapiPathComputationDeletep2ppathOutput - a model defined in Swagger + + :param service: The service of this TapiPathComputationDeletep2ppathOutput. # noqa: E501 + :type service: TapiPathComputationPathComputationService + """ + self.swagger_types = { + 'service': TapiPathComputationPathComputationService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationDeletep2ppathOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.deletep2ppath.Output of this TapiPathComputationDeletep2ppathOutput. # noqa: E501 + :rtype: TapiPathComputationDeletep2ppathOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiPathComputationPathComputationService: + """Gets the service of this TapiPathComputationDeletep2ppathOutput. + + + :return: The service of this TapiPathComputationDeletep2ppathOutput. + :rtype: TapiPathComputationPathComputationService + """ + return self._service + + @service.setter + def service(self, service: TapiPathComputationPathComputationService): + """Sets the service of this TapiPathComputationDeletep2ppathOutput. + + + :param service: The service of this TapiPathComputationDeletep2ppathOutput. + :type service: TapiPathComputationPathComputationService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_diversity_policy.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_diversity_policy.py new file mode 100644 index 0000000000000000000000000000000000000000..fb26c95763424c8168c33752246365696d331175 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_diversity_policy.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiPathComputationDiversityPolicy(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + SRLG = "SRLG" + SRNG = "SRNG" + SNG = "SNG" + NODE = "NODE" + LINK = "LINK" + def __init__(self): # noqa: E501 + """TapiPathComputationDiversityPolicy - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationDiversityPolicy': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.DiversityPolicy of this TapiPathComputationDiversityPolicy. # noqa: E501 + :rtype: TapiPathComputationDiversityPolicy + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimize_p2_ppath.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimize_p2_ppath.py new file mode 100644 index 0000000000000000000000000000000000000000..33673e284aa5574a1fd4285a2ac3e947c58e3027 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimize_p2_ppath.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_optimizep2ppath_output import TapiPathComputationOptimizep2ppathOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationOptimizeP2Ppath(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiPathComputationOptimizep2ppathOutput=None): # noqa: E501 + """TapiPathComputationOptimizeP2Ppath - a model defined in Swagger + + :param output: The output of this TapiPathComputationOptimizeP2Ppath. # noqa: E501 + :type output: TapiPathComputationOptimizep2ppathOutput + """ + self.swagger_types = { + 'output': TapiPathComputationOptimizep2ppathOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationOptimizeP2Ppath': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.OptimizeP2Ppath of this TapiPathComputationOptimizeP2Ppath. # noqa: E501 + :rtype: TapiPathComputationOptimizeP2Ppath + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiPathComputationOptimizep2ppathOutput: + """Gets the output of this TapiPathComputationOptimizeP2Ppath. + + + :return: The output of this TapiPathComputationOptimizeP2Ppath. + :rtype: TapiPathComputationOptimizep2ppathOutput + """ + return self._output + + @output.setter + def output(self, output: TapiPathComputationOptimizep2ppathOutput): + """Sets the output of this TapiPathComputationOptimizeP2Ppath. + + + :param output: The output of this TapiPathComputationOptimizeP2Ppath. + :type output: TapiPathComputationOptimizep2ppathOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_input.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_input.py new file mode 100644 index 0000000000000000000000000000000000000000..8d156745236d27b6d9a96514f6c463f009096d11 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_input.py @@ -0,0 +1,145 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_objective_function import TapiPathComputationPathObjectiveFunction # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_optimization_constraint import TapiPathComputationPathOptimizationConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationOptimizep2ppathInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, routing_constraint: TapiPathComputationRoutingConstraint=None, path_id_or_name: str=None, optimization_constraint: TapiPathComputationPathOptimizationConstraint=None, objective_function: TapiPathComputationPathObjectiveFunction=None): # noqa: E501 + """TapiPathComputationOptimizep2ppathInput - a model defined in Swagger + + :param routing_constraint: The routing_constraint of this TapiPathComputationOptimizep2ppathInput. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param path_id_or_name: The path_id_or_name of this TapiPathComputationOptimizep2ppathInput. # noqa: E501 + :type path_id_or_name: str + :param optimization_constraint: The optimization_constraint of this TapiPathComputationOptimizep2ppathInput. # noqa: E501 + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + :param objective_function: The objective_function of this TapiPathComputationOptimizep2ppathInput. # noqa: E501 + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + self.swagger_types = { + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'path_id_or_name': str, + 'optimization_constraint': TapiPathComputationPathOptimizationConstraint, + 'objective_function': TapiPathComputationPathObjectiveFunction + } + + self.attribute_map = { + 'routing_constraint': 'routing-constraint', + 'path_id_or_name': 'path-id-or-name', + 'optimization_constraint': 'optimization-constraint', + 'objective_function': 'objective-function' + } + self._routing_constraint = routing_constraint + self._path_id_or_name = path_id_or_name + self._optimization_constraint = optimization_constraint + self._objective_function = objective_function + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationOptimizep2ppathInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.optimizep2ppath.Input of this TapiPathComputationOptimizep2ppathInput. # noqa: E501 + :rtype: TapiPathComputationOptimizep2ppathInput + """ + return util.deserialize_model(dikt, cls) + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiPathComputationOptimizep2ppathInput. + + + :return: The routing_constraint of this TapiPathComputationOptimizep2ppathInput. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiPathComputationOptimizep2ppathInput. + + + :param routing_constraint: The routing_constraint of this TapiPathComputationOptimizep2ppathInput. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def path_id_or_name(self) -> str: + """Gets the path_id_or_name of this TapiPathComputationOptimizep2ppathInput. + + none # noqa: E501 + + :return: The path_id_or_name of this TapiPathComputationOptimizep2ppathInput. + :rtype: str + """ + return self._path_id_or_name + + @path_id_or_name.setter + def path_id_or_name(self, path_id_or_name: str): + """Sets the path_id_or_name of this TapiPathComputationOptimizep2ppathInput. + + none # noqa: E501 + + :param path_id_or_name: The path_id_or_name of this TapiPathComputationOptimizep2ppathInput. + :type path_id_or_name: str + """ + + self._path_id_or_name = path_id_or_name + + @property + def optimization_constraint(self) -> TapiPathComputationPathOptimizationConstraint: + """Gets the optimization_constraint of this TapiPathComputationOptimizep2ppathInput. + + + :return: The optimization_constraint of this TapiPathComputationOptimizep2ppathInput. + :rtype: TapiPathComputationPathOptimizationConstraint + """ + return self._optimization_constraint + + @optimization_constraint.setter + def optimization_constraint(self, optimization_constraint: TapiPathComputationPathOptimizationConstraint): + """Sets the optimization_constraint of this TapiPathComputationOptimizep2ppathInput. + + + :param optimization_constraint: The optimization_constraint of this TapiPathComputationOptimizep2ppathInput. + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + """ + + self._optimization_constraint = optimization_constraint + + @property + def objective_function(self) -> TapiPathComputationPathObjectiveFunction: + """Gets the objective_function of this TapiPathComputationOptimizep2ppathInput. + + + :return: The objective_function of this TapiPathComputationOptimizep2ppathInput. + :rtype: TapiPathComputationPathObjectiveFunction + """ + return self._objective_function + + @objective_function.setter + def objective_function(self, objective_function: TapiPathComputationPathObjectiveFunction): + """Sets the objective_function of this TapiPathComputationOptimizep2ppathInput. + + + :param objective_function: The objective_function of this TapiPathComputationOptimizep2ppathInput. + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + + self._objective_function = objective_function diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_output.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_output.py new file mode 100644 index 0000000000000000000000000000000000000000..70447a61f7d388f7c9c755bdd09ba922a64aa4f3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_optimizep2ppath_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationOptimizep2ppathOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, service: TapiPathComputationPathComputationService=None): # noqa: E501 + """TapiPathComputationOptimizep2ppathOutput - a model defined in Swagger + + :param service: The service of this TapiPathComputationOptimizep2ppathOutput. # noqa: E501 + :type service: TapiPathComputationPathComputationService + """ + self.swagger_types = { + 'service': TapiPathComputationPathComputationService + } + + self.attribute_map = { + 'service': 'service' + } + self._service = service + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationOptimizep2ppathOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.optimizep2ppath.Output of this TapiPathComputationOptimizep2ppathOutput. # noqa: E501 + :rtype: TapiPathComputationOptimizep2ppathOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def service(self) -> TapiPathComputationPathComputationService: + """Gets the service of this TapiPathComputationOptimizep2ppathOutput. + + + :return: The service of this TapiPathComputationOptimizep2ppathOutput. + :rtype: TapiPathComputationPathComputationService + """ + return self._service + + @service.setter + def service(self, service: TapiPathComputationPathComputationService): + """Sets the service of this TapiPathComputationOptimizep2ppathOutput. + + + :param service: The service of this TapiPathComputationOptimizep2ppathOutput. + :type service: TapiPathComputationPathComputationService + """ + + self._service = service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path.py new file mode 100644 index 0000000000000000000000000000000000000000..a522aed2a66c61eea616d528ea089d0fab9ccf34 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path.py @@ -0,0 +1,204 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_topology_link_ref import TapiTopologyLinkRef # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPath(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, layer_protocol_name: TapiCommonLayerProtocolName=None, link: List[TapiTopologyLinkRef]=None, routing_constraint: TapiPathComputationRoutingConstraint=None, direction: TapiCommonForwardingDirection=None): # noqa: E501 + """TapiPathComputationPath - a model defined in Swagger + + :param name: The name of this TapiPathComputationPath. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiPathComputationPath. # noqa: E501 + :type uuid: str + :param layer_protocol_name: The layer_protocol_name of this TapiPathComputationPath. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param link: The link of this TapiPathComputationPath. # noqa: E501 + :type link: List[TapiTopologyLinkRef] + :param routing_constraint: The routing_constraint of this TapiPathComputationPath. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param direction: The direction of this TapiPathComputationPath. # noqa: E501 + :type direction: TapiCommonForwardingDirection + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'link': List[TapiTopologyLinkRef], + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'direction': TapiCommonForwardingDirection + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'layer_protocol_name': 'layer-protocol-name', + 'link': 'link', + 'routing_constraint': 'routing-constraint', + 'direction': 'direction' + } + self._name = name + self._uuid = uuid + self._layer_protocol_name = layer_protocol_name + self._link = link + self._routing_constraint = routing_constraint + self._direction = direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPath': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.Path of this TapiPathComputationPath. # noqa: E501 + :rtype: TapiPathComputationPath + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiPathComputationPath. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiPathComputationPath. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiPathComputationPath. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiPathComputationPath. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiPathComputationPath. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiPathComputationPath. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiPathComputationPath. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiPathComputationPath. + :type uuid: str + """ + + self._uuid = uuid + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiPathComputationPath. + + + :return: The layer_protocol_name of this TapiPathComputationPath. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiPathComputationPath. + + + :param layer_protocol_name: The layer_protocol_name of this TapiPathComputationPath. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def link(self) -> List[TapiTopologyLinkRef]: + """Gets the link of this TapiPathComputationPath. + + none # noqa: E501 + + :return: The link of this TapiPathComputationPath. + :rtype: List[TapiTopologyLinkRef] + """ + return self._link + + @link.setter + def link(self, link: List[TapiTopologyLinkRef]): + """Sets the link of this TapiPathComputationPath. + + none # noqa: E501 + + :param link: The link of this TapiPathComputationPath. + :type link: List[TapiTopologyLinkRef] + """ + + self._link = link + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiPathComputationPath. + + + :return: The routing_constraint of this TapiPathComputationPath. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiPathComputationPath. + + + :param routing_constraint: The routing_constraint of this TapiPathComputationPath. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def direction(self) -> TapiCommonForwardingDirection: + """Gets the direction of this TapiPathComputationPath. + + + :return: The direction of this TapiPathComputationPath. + :rtype: TapiCommonForwardingDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonForwardingDirection): + """Sets the direction of this TapiPathComputationPath. + + + :param direction: The direction of this TapiPathComputationPath. + :type direction: TapiCommonForwardingDirection + """ + + self._direction = direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context.py new file mode 100644 index 0000000000000000000000000000000000000000..7a1b72f7947633a822a77c41a6cb2b271f4ae536 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path import TapiPathComputationPath # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathComputationContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path_comp_service: List[TapiPathComputationPathComputationService]=None, path: List[TapiPathComputationPath]=None): # noqa: E501 + """TapiPathComputationPathComputationContext - a model defined in Swagger + + :param path_comp_service: The path_comp_service of this TapiPathComputationPathComputationContext. # noqa: E501 + :type path_comp_service: List[TapiPathComputationPathComputationService] + :param path: The path of this TapiPathComputationPathComputationContext. # noqa: E501 + :type path: List[TapiPathComputationPath] + """ + self.swagger_types = { + 'path_comp_service': List[TapiPathComputationPathComputationService], + 'path': List[TapiPathComputationPath] + } + + self.attribute_map = { + 'path_comp_service': 'path-comp-service', + 'path': 'path' + } + self._path_comp_service = path_comp_service + self._path = path + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathComputationContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathComputationContext of this TapiPathComputationPathComputationContext. # noqa: E501 + :rtype: TapiPathComputationPathComputationContext + """ + return util.deserialize_model(dikt, cls) + + @property + def path_comp_service(self) -> List[TapiPathComputationPathComputationService]: + """Gets the path_comp_service of this TapiPathComputationPathComputationContext. + + none # noqa: E501 + + :return: The path_comp_service of this TapiPathComputationPathComputationContext. + :rtype: List[TapiPathComputationPathComputationService] + """ + return self._path_comp_service + + @path_comp_service.setter + def path_comp_service(self, path_comp_service: List[TapiPathComputationPathComputationService]): + """Sets the path_comp_service of this TapiPathComputationPathComputationContext. + + none # noqa: E501 + + :param path_comp_service: The path_comp_service of this TapiPathComputationPathComputationContext. + :type path_comp_service: List[TapiPathComputationPathComputationService] + """ + + self._path_comp_service = path_comp_service + + @property + def path(self) -> List[TapiPathComputationPath]: + """Gets the path of this TapiPathComputationPathComputationContext. + + none # noqa: E501 + + :return: The path of this TapiPathComputationPathComputationContext. + :rtype: List[TapiPathComputationPath] + """ + return self._path + + @path.setter + def path(self, path: List[TapiPathComputationPath]): + """Sets the path of this TapiPathComputationPathComputationContext. + + none # noqa: E501 + + :param path: The path of this TapiPathComputationPathComputationContext. + :type path: List[TapiPathComputationPath] + """ + + self._path = path diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..1363e893605826a02fc4139cfebc905fde456b5d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_context_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_context import TapiPathComputationPathComputationContext # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathComputationContextWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_path_computationpath_computation_context: TapiPathComputationPathComputationContext=None): # noqa: E501 + """TapiPathComputationPathComputationContextWrapper - a model defined in Swagger + + :param tapi_path_computationpath_computation_context: The tapi_path_computationpath_computation_context of this TapiPathComputationPathComputationContextWrapper. # noqa: E501 + :type tapi_path_computationpath_computation_context: TapiPathComputationPathComputationContext + """ + self.swagger_types = { + 'tapi_path_computationpath_computation_context': TapiPathComputationPathComputationContext + } + + self.attribute_map = { + 'tapi_path_computationpath_computation_context': 'tapi-path-computation:path-computation-context' + } + self._tapi_path_computationpath_computation_context = tapi_path_computationpath_computation_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathComputationContextWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathComputationContextWrapper of this TapiPathComputationPathComputationContextWrapper. # noqa: E501 + :rtype: TapiPathComputationPathComputationContextWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_path_computationpath_computation_context(self) -> TapiPathComputationPathComputationContext: + """Gets the tapi_path_computationpath_computation_context of this TapiPathComputationPathComputationContextWrapper. + + + :return: The tapi_path_computationpath_computation_context of this TapiPathComputationPathComputationContextWrapper. + :rtype: TapiPathComputationPathComputationContext + """ + return self._tapi_path_computationpath_computation_context + + @tapi_path_computationpath_computation_context.setter + def tapi_path_computationpath_computation_context(self, tapi_path_computationpath_computation_context: TapiPathComputationPathComputationContext): + """Sets the tapi_path_computationpath_computation_context of this TapiPathComputationPathComputationContextWrapper. + + + :param tapi_path_computationpath_computation_context: The tapi_path_computationpath_computation_context of this TapiPathComputationPathComputationContextWrapper. + :type tapi_path_computationpath_computation_context: TapiPathComputationPathComputationContext + """ + + self._tapi_path_computationpath_computation_context = tapi_path_computationpath_computation_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service.py new file mode 100644 index 0000000000000000000000000000000000000000..f940cab7e89979fbb631a66e164f9ca1525cc179 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service.py @@ -0,0 +1,260 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_objective_function import TapiPathComputationPathObjectiveFunction # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_optimization_constraint import TapiPathComputationPathOptimizationConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_ref import TapiPathComputationPathRef # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_path_service_end_point import TapiPathComputationPathServiceEndPoint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathComputationService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, topology_constraint: TapiPathComputationTopologyConstraint=None, path: List[TapiPathComputationPathRef]=None, objective_function: TapiPathComputationPathObjectiveFunction=None, end_point: List[TapiPathComputationPathServiceEndPoint]=None, routing_constraint: TapiPathComputationRoutingConstraint=None, optimization_constraint: TapiPathComputationPathOptimizationConstraint=None): # noqa: E501 + """TapiPathComputationPathComputationService - a model defined in Swagger + + :param name: The name of this TapiPathComputationPathComputationService. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiPathComputationPathComputationService. # noqa: E501 + :type uuid: str + :param topology_constraint: The topology_constraint of this TapiPathComputationPathComputationService. # noqa: E501 + :type topology_constraint: TapiPathComputationTopologyConstraint + :param path: The path of this TapiPathComputationPathComputationService. # noqa: E501 + :type path: List[TapiPathComputationPathRef] + :param objective_function: The objective_function of this TapiPathComputationPathComputationService. # noqa: E501 + :type objective_function: TapiPathComputationPathObjectiveFunction + :param end_point: The end_point of this TapiPathComputationPathComputationService. # noqa: E501 + :type end_point: List[TapiPathComputationPathServiceEndPoint] + :param routing_constraint: The routing_constraint of this TapiPathComputationPathComputationService. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + :param optimization_constraint: The optimization_constraint of this TapiPathComputationPathComputationService. # noqa: E501 + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'topology_constraint': TapiPathComputationTopologyConstraint, + 'path': List[TapiPathComputationPathRef], + 'objective_function': TapiPathComputationPathObjectiveFunction, + 'end_point': List[TapiPathComputationPathServiceEndPoint], + 'routing_constraint': TapiPathComputationRoutingConstraint, + 'optimization_constraint': TapiPathComputationPathOptimizationConstraint + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'topology_constraint': 'topology-constraint', + 'path': 'path', + 'objective_function': 'objective-function', + 'end_point': 'end-point', + 'routing_constraint': 'routing-constraint', + 'optimization_constraint': 'optimization-constraint' + } + self._name = name + self._uuid = uuid + self._topology_constraint = topology_constraint + self._path = path + self._objective_function = objective_function + self._end_point = end_point + self._routing_constraint = routing_constraint + self._optimization_constraint = optimization_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathComputationService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathComputationService of this TapiPathComputationPathComputationService. # noqa: E501 + :rtype: TapiPathComputationPathComputationService + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiPathComputationPathComputationService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiPathComputationPathComputationService. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiPathComputationPathComputationService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiPathComputationPathComputationService. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiPathComputationPathComputationService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiPathComputationPathComputationService. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiPathComputationPathComputationService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiPathComputationPathComputationService. + :type uuid: str + """ + + self._uuid = uuid + + @property + def topology_constraint(self) -> TapiPathComputationTopologyConstraint: + """Gets the topology_constraint of this TapiPathComputationPathComputationService. + + + :return: The topology_constraint of this TapiPathComputationPathComputationService. + :rtype: TapiPathComputationTopologyConstraint + """ + return self._topology_constraint + + @topology_constraint.setter + def topology_constraint(self, topology_constraint: TapiPathComputationTopologyConstraint): + """Sets the topology_constraint of this TapiPathComputationPathComputationService. + + + :param topology_constraint: The topology_constraint of this TapiPathComputationPathComputationService. + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + + self._topology_constraint = topology_constraint + + @property + def path(self) -> List[TapiPathComputationPathRef]: + """Gets the path of this TapiPathComputationPathComputationService. + + none # noqa: E501 + + :return: The path of this TapiPathComputationPathComputationService. + :rtype: List[TapiPathComputationPathRef] + """ + return self._path + + @path.setter + def path(self, path: List[TapiPathComputationPathRef]): + """Sets the path of this TapiPathComputationPathComputationService. + + none # noqa: E501 + + :param path: The path of this TapiPathComputationPathComputationService. + :type path: List[TapiPathComputationPathRef] + """ + + self._path = path + + @property + def objective_function(self) -> TapiPathComputationPathObjectiveFunction: + """Gets the objective_function of this TapiPathComputationPathComputationService. + + + :return: The objective_function of this TapiPathComputationPathComputationService. + :rtype: TapiPathComputationPathObjectiveFunction + """ + return self._objective_function + + @objective_function.setter + def objective_function(self, objective_function: TapiPathComputationPathObjectiveFunction): + """Sets the objective_function of this TapiPathComputationPathComputationService. + + + :param objective_function: The objective_function of this TapiPathComputationPathComputationService. + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + + self._objective_function = objective_function + + @property + def end_point(self) -> List[TapiPathComputationPathServiceEndPoint]: + """Gets the end_point of this TapiPathComputationPathComputationService. + + none # noqa: E501 + + :return: The end_point of this TapiPathComputationPathComputationService. + :rtype: List[TapiPathComputationPathServiceEndPoint] + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: List[TapiPathComputationPathServiceEndPoint]): + """Sets the end_point of this TapiPathComputationPathComputationService. + + none # noqa: E501 + + :param end_point: The end_point of this TapiPathComputationPathComputationService. + :type end_point: List[TapiPathComputationPathServiceEndPoint] + """ + + self._end_point = end_point + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiPathComputationPathComputationService. + + + :return: The routing_constraint of this TapiPathComputationPathComputationService. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiPathComputationPathComputationService. + + + :param routing_constraint: The routing_constraint of this TapiPathComputationPathComputationService. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint + + @property + def optimization_constraint(self) -> TapiPathComputationPathOptimizationConstraint: + """Gets the optimization_constraint of this TapiPathComputationPathComputationService. + + + :return: The optimization_constraint of this TapiPathComputationPathComputationService. + :rtype: TapiPathComputationPathOptimizationConstraint + """ + return self._optimization_constraint + + @optimization_constraint.setter + def optimization_constraint(self, optimization_constraint: TapiPathComputationPathOptimizationConstraint): + """Sets the optimization_constraint of this TapiPathComputationPathComputationService. + + + :param optimization_constraint: The optimization_constraint of this TapiPathComputationPathComputationService. + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + """ + + self._optimization_constraint = optimization_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..0f6457979d7c102c2c5e0e5003469eb4d06d407a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_computation_service_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_computation_service import TapiPathComputationPathComputationService # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathComputationServiceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path_comp_service: TapiPathComputationPathComputationService=None): # noqa: E501 + """TapiPathComputationPathComputationServiceWrapper - a model defined in Swagger + + :param path_comp_service: The path_comp_service of this TapiPathComputationPathComputationServiceWrapper. # noqa: E501 + :type path_comp_service: TapiPathComputationPathComputationService + """ + self.swagger_types = { + 'path_comp_service': TapiPathComputationPathComputationService + } + + self.attribute_map = { + 'path_comp_service': 'path-comp-service' + } + self._path_comp_service = path_comp_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathComputationServiceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathComputationServiceWrapper of this TapiPathComputationPathComputationServiceWrapper. # noqa: E501 + :rtype: TapiPathComputationPathComputationServiceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def path_comp_service(self) -> TapiPathComputationPathComputationService: + """Gets the path_comp_service of this TapiPathComputationPathComputationServiceWrapper. + + + :return: The path_comp_service of this TapiPathComputationPathComputationServiceWrapper. + :rtype: TapiPathComputationPathComputationService + """ + return self._path_comp_service + + @path_comp_service.setter + def path_comp_service(self, path_comp_service: TapiPathComputationPathComputationService): + """Sets the path_comp_service of this TapiPathComputationPathComputationServiceWrapper. + + + :param path_comp_service: The path_comp_service of this TapiPathComputationPathComputationServiceWrapper. + :type path_comp_service: TapiPathComputationPathComputationService + """ + + self._path_comp_service = path_comp_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function.py new file mode 100644 index 0000000000000000000000000000000000000000..4b6262b176ff0063a10996d08c332b325a7bf64d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function.py @@ -0,0 +1,225 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_directive_value import TapiCommonDirectiveValue # noqa: F401,E501 +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathObjectiveFunction(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, link_utilization: TapiCommonDirectiveValue=None, bandwidth_optimization: TapiCommonDirectiveValue=None, cost_optimization: TapiCommonDirectiveValue=None, resource_sharing: TapiCommonDirectiveValue=None, concurrent_paths: TapiCommonDirectiveValue=None): # noqa: E501 + """TapiPathComputationPathObjectiveFunction - a model defined in Swagger + + :param name: The name of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type local_id: str + :param link_utilization: The link_utilization of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type link_utilization: TapiCommonDirectiveValue + :param bandwidth_optimization: The bandwidth_optimization of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type bandwidth_optimization: TapiCommonDirectiveValue + :param cost_optimization: The cost_optimization of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type cost_optimization: TapiCommonDirectiveValue + :param resource_sharing: The resource_sharing of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type resource_sharing: TapiCommonDirectiveValue + :param concurrent_paths: The concurrent_paths of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :type concurrent_paths: TapiCommonDirectiveValue + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'link_utilization': TapiCommonDirectiveValue, + 'bandwidth_optimization': TapiCommonDirectiveValue, + 'cost_optimization': TapiCommonDirectiveValue, + 'resource_sharing': TapiCommonDirectiveValue, + 'concurrent_paths': TapiCommonDirectiveValue + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'link_utilization': 'link-utilization', + 'bandwidth_optimization': 'bandwidth-optimization', + 'cost_optimization': 'cost-optimization', + 'resource_sharing': 'resource-sharing', + 'concurrent_paths': 'concurrent-paths' + } + self._name = name + self._local_id = local_id + self._link_utilization = link_utilization + self._bandwidth_optimization = bandwidth_optimization + self._cost_optimization = cost_optimization + self._resource_sharing = resource_sharing + self._concurrent_paths = concurrent_paths + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathObjectiveFunction': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathObjectiveFunction of this TapiPathComputationPathObjectiveFunction. # noqa: E501 + :rtype: TapiPathComputationPathObjectiveFunction + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiPathComputationPathObjectiveFunction. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiPathComputationPathObjectiveFunction. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiPathComputationPathObjectiveFunction. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiPathComputationPathObjectiveFunction. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiPathComputationPathObjectiveFunction. + + none # noqa: E501 + + :return: The local_id of this TapiPathComputationPathObjectiveFunction. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiPathComputationPathObjectiveFunction. + + none # noqa: E501 + + :param local_id: The local_id of this TapiPathComputationPathObjectiveFunction. + :type local_id: str + """ + + self._local_id = local_id + + @property + def link_utilization(self) -> TapiCommonDirectiveValue: + """Gets the link_utilization of this TapiPathComputationPathObjectiveFunction. + + + :return: The link_utilization of this TapiPathComputationPathObjectiveFunction. + :rtype: TapiCommonDirectiveValue + """ + return self._link_utilization + + @link_utilization.setter + def link_utilization(self, link_utilization: TapiCommonDirectiveValue): + """Sets the link_utilization of this TapiPathComputationPathObjectiveFunction. + + + :param link_utilization: The link_utilization of this TapiPathComputationPathObjectiveFunction. + :type link_utilization: TapiCommonDirectiveValue + """ + + self._link_utilization = link_utilization + + @property + def bandwidth_optimization(self) -> TapiCommonDirectiveValue: + """Gets the bandwidth_optimization of this TapiPathComputationPathObjectiveFunction. + + + :return: The bandwidth_optimization of this TapiPathComputationPathObjectiveFunction. + :rtype: TapiCommonDirectiveValue + """ + return self._bandwidth_optimization + + @bandwidth_optimization.setter + def bandwidth_optimization(self, bandwidth_optimization: TapiCommonDirectiveValue): + """Sets the bandwidth_optimization of this TapiPathComputationPathObjectiveFunction. + + + :param bandwidth_optimization: The bandwidth_optimization of this TapiPathComputationPathObjectiveFunction. + :type bandwidth_optimization: TapiCommonDirectiveValue + """ + + self._bandwidth_optimization = bandwidth_optimization + + @property + def cost_optimization(self) -> TapiCommonDirectiveValue: + """Gets the cost_optimization of this TapiPathComputationPathObjectiveFunction. + + + :return: The cost_optimization of this TapiPathComputationPathObjectiveFunction. + :rtype: TapiCommonDirectiveValue + """ + return self._cost_optimization + + @cost_optimization.setter + def cost_optimization(self, cost_optimization: TapiCommonDirectiveValue): + """Sets the cost_optimization of this TapiPathComputationPathObjectiveFunction. + + + :param cost_optimization: The cost_optimization of this TapiPathComputationPathObjectiveFunction. + :type cost_optimization: TapiCommonDirectiveValue + """ + + self._cost_optimization = cost_optimization + + @property + def resource_sharing(self) -> TapiCommonDirectiveValue: + """Gets the resource_sharing of this TapiPathComputationPathObjectiveFunction. + + + :return: The resource_sharing of this TapiPathComputationPathObjectiveFunction. + :rtype: TapiCommonDirectiveValue + """ + return self._resource_sharing + + @resource_sharing.setter + def resource_sharing(self, resource_sharing: TapiCommonDirectiveValue): + """Sets the resource_sharing of this TapiPathComputationPathObjectiveFunction. + + + :param resource_sharing: The resource_sharing of this TapiPathComputationPathObjectiveFunction. + :type resource_sharing: TapiCommonDirectiveValue + """ + + self._resource_sharing = resource_sharing + + @property + def concurrent_paths(self) -> TapiCommonDirectiveValue: + """Gets the concurrent_paths of this TapiPathComputationPathObjectiveFunction. + + + :return: The concurrent_paths of this TapiPathComputationPathObjectiveFunction. + :rtype: TapiCommonDirectiveValue + """ + return self._concurrent_paths + + @concurrent_paths.setter + def concurrent_paths(self, concurrent_paths: TapiCommonDirectiveValue): + """Sets the concurrent_paths of this TapiPathComputationPathObjectiveFunction. + + + :param concurrent_paths: The concurrent_paths of this TapiPathComputationPathObjectiveFunction. + :type concurrent_paths: TapiCommonDirectiveValue + """ + + self._concurrent_paths = concurrent_paths diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..789ba09af03b210a9ddd3486f25fcdb62bd12c08 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_objective_function_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_objective_function import TapiPathComputationPathObjectiveFunction # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathObjectiveFunctionWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, objective_function: TapiPathComputationPathObjectiveFunction=None): # noqa: E501 + """TapiPathComputationPathObjectiveFunctionWrapper - a model defined in Swagger + + :param objective_function: The objective_function of this TapiPathComputationPathObjectiveFunctionWrapper. # noqa: E501 + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + self.swagger_types = { + 'objective_function': TapiPathComputationPathObjectiveFunction + } + + self.attribute_map = { + 'objective_function': 'objective-function' + } + self._objective_function = objective_function + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathObjectiveFunctionWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathObjectiveFunctionWrapper of this TapiPathComputationPathObjectiveFunctionWrapper. # noqa: E501 + :rtype: TapiPathComputationPathObjectiveFunctionWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def objective_function(self) -> TapiPathComputationPathObjectiveFunction: + """Gets the objective_function of this TapiPathComputationPathObjectiveFunctionWrapper. + + + :return: The objective_function of this TapiPathComputationPathObjectiveFunctionWrapper. + :rtype: TapiPathComputationPathObjectiveFunction + """ + return self._objective_function + + @objective_function.setter + def objective_function(self, objective_function: TapiPathComputationPathObjectiveFunction): + """Sets the objective_function of this TapiPathComputationPathObjectiveFunctionWrapper. + + + :param objective_function: The objective_function of this TapiPathComputationPathObjectiveFunctionWrapper. + :type objective_function: TapiPathComputationPathObjectiveFunction + """ + + self._objective_function = objective_function diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint.py new file mode 100644 index 0000000000000000000000000000000000000000..4de4ec31cc47493696f8abaf7dd86359336c6b4a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint.py @@ -0,0 +1,121 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_directive_value import TapiCommonDirectiveValue # noqa: F401,E501 +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathOptimizationConstraint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, traffic_interruption: TapiCommonDirectiveValue=None): # noqa: E501 + """TapiPathComputationPathOptimizationConstraint - a model defined in Swagger + + :param name: The name of this TapiPathComputationPathOptimizationConstraint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiPathComputationPathOptimizationConstraint. # noqa: E501 + :type local_id: str + :param traffic_interruption: The traffic_interruption of this TapiPathComputationPathOptimizationConstraint. # noqa: E501 + :type traffic_interruption: TapiCommonDirectiveValue + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'traffic_interruption': TapiCommonDirectiveValue + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'traffic_interruption': 'traffic-interruption' + } + self._name = name + self._local_id = local_id + self._traffic_interruption = traffic_interruption + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathOptimizationConstraint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathOptimizationConstraint of this TapiPathComputationPathOptimizationConstraint. # noqa: E501 + :rtype: TapiPathComputationPathOptimizationConstraint + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiPathComputationPathOptimizationConstraint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiPathComputationPathOptimizationConstraint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiPathComputationPathOptimizationConstraint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiPathComputationPathOptimizationConstraint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiPathComputationPathOptimizationConstraint. + + none # noqa: E501 + + :return: The local_id of this TapiPathComputationPathOptimizationConstraint. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiPathComputationPathOptimizationConstraint. + + none # noqa: E501 + + :param local_id: The local_id of this TapiPathComputationPathOptimizationConstraint. + :type local_id: str + """ + + self._local_id = local_id + + @property + def traffic_interruption(self) -> TapiCommonDirectiveValue: + """Gets the traffic_interruption of this TapiPathComputationPathOptimizationConstraint. + + + :return: The traffic_interruption of this TapiPathComputationPathOptimizationConstraint. + :rtype: TapiCommonDirectiveValue + """ + return self._traffic_interruption + + @traffic_interruption.setter + def traffic_interruption(self, traffic_interruption: TapiCommonDirectiveValue): + """Sets the traffic_interruption of this TapiPathComputationPathOptimizationConstraint. + + + :param traffic_interruption: The traffic_interruption of this TapiPathComputationPathOptimizationConstraint. + :type traffic_interruption: TapiCommonDirectiveValue + """ + + self._traffic_interruption = traffic_interruption diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..006f1b27bdd42ef3f82f0a96dd2a5d6fd522dd5d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_optimization_constraint_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_optimization_constraint import TapiPathComputationPathOptimizationConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathOptimizationConstraintWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, optimization_constraint: TapiPathComputationPathOptimizationConstraint=None): # noqa: E501 + """TapiPathComputationPathOptimizationConstraintWrapper - a model defined in Swagger + + :param optimization_constraint: The optimization_constraint of this TapiPathComputationPathOptimizationConstraintWrapper. # noqa: E501 + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + """ + self.swagger_types = { + 'optimization_constraint': TapiPathComputationPathOptimizationConstraint + } + + self.attribute_map = { + 'optimization_constraint': 'optimization-constraint' + } + self._optimization_constraint = optimization_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathOptimizationConstraintWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathOptimizationConstraintWrapper of this TapiPathComputationPathOptimizationConstraintWrapper. # noqa: E501 + :rtype: TapiPathComputationPathOptimizationConstraintWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def optimization_constraint(self) -> TapiPathComputationPathOptimizationConstraint: + """Gets the optimization_constraint of this TapiPathComputationPathOptimizationConstraintWrapper. + + + :return: The optimization_constraint of this TapiPathComputationPathOptimizationConstraintWrapper. + :rtype: TapiPathComputationPathOptimizationConstraint + """ + return self._optimization_constraint + + @optimization_constraint.setter + def optimization_constraint(self, optimization_constraint: TapiPathComputationPathOptimizationConstraint): + """Sets the optimization_constraint of this TapiPathComputationPathOptimizationConstraintWrapper. + + + :param optimization_constraint: The optimization_constraint of this TapiPathComputationPathOptimizationConstraintWrapper. + :type optimization_constraint: TapiPathComputationPathOptimizationConstraint + """ + + self._optimization_constraint = optimization_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..4ce08ac953777c972d033cad916ee3f61eed8001 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiPathComputationPathRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path_uuid: str=None): # noqa: E501 + """TapiPathComputationPathRef - a model defined in Swagger + + :param path_uuid: The path_uuid of this TapiPathComputationPathRef. # noqa: E501 + :type path_uuid: str + """ + self.swagger_types = { + 'path_uuid': str + } + + self.attribute_map = { + 'path_uuid': 'path-uuid' + } + self._path_uuid = path_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathRef of this TapiPathComputationPathRef. # noqa: E501 + :rtype: TapiPathComputationPathRef + """ + return util.deserialize_model(dikt, cls) + + @property + def path_uuid(self) -> str: + """Gets the path_uuid of this TapiPathComputationPathRef. + + none # noqa: E501 + + :return: The path_uuid of this TapiPathComputationPathRef. + :rtype: str + """ + return self._path_uuid + + @path_uuid.setter + def path_uuid(self, path_uuid: str): + """Sets the path_uuid of this TapiPathComputationPathRef. + + none # noqa: E501 + + :param path_uuid: The path_uuid of this TapiPathComputationPathRef. + :type path_uuid: str + """ + + self._path_uuid = path_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..95abec7140eef27ede5e523a6d9db298a6f5952d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_ref import TapiPathComputationPathRef # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path: TapiPathComputationPathRef=None): # noqa: E501 + """TapiPathComputationPathRefWrapper - a model defined in Swagger + + :param path: The path of this TapiPathComputationPathRefWrapper. # noqa: E501 + :type path: TapiPathComputationPathRef + """ + self.swagger_types = { + 'path': TapiPathComputationPathRef + } + + self.attribute_map = { + 'path': 'path' + } + self._path = path + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathRefWrapper of this TapiPathComputationPathRefWrapper. # noqa: E501 + :rtype: TapiPathComputationPathRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def path(self) -> TapiPathComputationPathRef: + """Gets the path of this TapiPathComputationPathRefWrapper. + + + :return: The path of this TapiPathComputationPathRefWrapper. + :rtype: TapiPathComputationPathRef + """ + return self._path + + @path.setter + def path(self, path: TapiPathComputationPathRef): + """Sets the path of this TapiPathComputationPathRefWrapper. + + + :param path: The path of this TapiPathComputationPathRefWrapper. + :type path: TapiPathComputationPathRef + """ + + self._path = path diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point.py new file mode 100644 index 0000000000000000000000000000000000000000..7db4a9374c1b8f1b9648613e43cc47edbb0c0c41 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point.py @@ -0,0 +1,257 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole # noqa: F401,E501 +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathServiceEndPoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, role: TapiCommonPortRole=None, service_interface_point: TapiCommonServiceInterfacePointRef=None, layer_protocol_name: TapiCommonLayerProtocolName=None, layer_protocol_qualifier: str=None, direction: TapiCommonPortDirection=None, capacity: TapiCommonCapacity=None): # noqa: E501 + """TapiPathComputationPathServiceEndPoint - a model defined in Swagger + + :param name: The name of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type local_id: str + :param role: The role of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type role: TapiCommonPortRole + :param service_interface_point: The service_interface_point of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type service_interface_point: TapiCommonServiceInterfacePointRef + :param layer_protocol_name: The layer_protocol_name of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type layer_protocol_qualifier: str + :param direction: The direction of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type direction: TapiCommonPortDirection + :param capacity: The capacity of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :type capacity: TapiCommonCapacity + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'role': TapiCommonPortRole, + 'service_interface_point': TapiCommonServiceInterfacePointRef, + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'layer_protocol_qualifier': str, + 'direction': TapiCommonPortDirection, + 'capacity': TapiCommonCapacity + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'role': 'role', + 'service_interface_point': 'service-interface-point', + 'layer_protocol_name': 'layer-protocol-name', + 'layer_protocol_qualifier': 'layer-protocol-qualifier', + 'direction': 'direction', + 'capacity': 'capacity' + } + self._name = name + self._local_id = local_id + self._role = role + self._service_interface_point = service_interface_point + self._layer_protocol_name = layer_protocol_name + self._layer_protocol_qualifier = layer_protocol_qualifier + self._direction = direction + self._capacity = capacity + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathServiceEndPoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathServiceEndPoint of this TapiPathComputationPathServiceEndPoint. # noqa: E501 + :rtype: TapiPathComputationPathServiceEndPoint + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiPathComputationPathServiceEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiPathComputationPathServiceEndPoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiPathComputationPathServiceEndPoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiPathComputationPathServiceEndPoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiPathComputationPathServiceEndPoint. + + none # noqa: E501 + + :return: The local_id of this TapiPathComputationPathServiceEndPoint. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiPathComputationPathServiceEndPoint. + + none # noqa: E501 + + :param local_id: The local_id of this TapiPathComputationPathServiceEndPoint. + :type local_id: str + """ + + self._local_id = local_id + + @property + def role(self) -> TapiCommonPortRole: + """Gets the role of this TapiPathComputationPathServiceEndPoint. + + + :return: The role of this TapiPathComputationPathServiceEndPoint. + :rtype: TapiCommonPortRole + """ + return self._role + + @role.setter + def role(self, role: TapiCommonPortRole): + """Sets the role of this TapiPathComputationPathServiceEndPoint. + + + :param role: The role of this TapiPathComputationPathServiceEndPoint. + :type role: TapiCommonPortRole + """ + + self._role = role + + @property + def service_interface_point(self) -> TapiCommonServiceInterfacePointRef: + """Gets the service_interface_point of this TapiPathComputationPathServiceEndPoint. + + + :return: The service_interface_point of this TapiPathComputationPathServiceEndPoint. + :rtype: TapiCommonServiceInterfacePointRef + """ + return self._service_interface_point + + @service_interface_point.setter + def service_interface_point(self, service_interface_point: TapiCommonServiceInterfacePointRef): + """Sets the service_interface_point of this TapiPathComputationPathServiceEndPoint. + + + :param service_interface_point: The service_interface_point of this TapiPathComputationPathServiceEndPoint. + :type service_interface_point: TapiCommonServiceInterfacePointRef + """ + + self._service_interface_point = service_interface_point + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiPathComputationPathServiceEndPoint. + + + :return: The layer_protocol_name of this TapiPathComputationPathServiceEndPoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiPathComputationPathServiceEndPoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiPathComputationPathServiceEndPoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def layer_protocol_qualifier(self) -> str: + """Gets the layer_protocol_qualifier of this TapiPathComputationPathServiceEndPoint. + + none # noqa: E501 + + :return: The layer_protocol_qualifier of this TapiPathComputationPathServiceEndPoint. + :rtype: str + """ + return self._layer_protocol_qualifier + + @layer_protocol_qualifier.setter + def layer_protocol_qualifier(self, layer_protocol_qualifier: str): + """Sets the layer_protocol_qualifier of this TapiPathComputationPathServiceEndPoint. + + none # noqa: E501 + + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiPathComputationPathServiceEndPoint. + :type layer_protocol_qualifier: str + """ + + self._layer_protocol_qualifier = layer_protocol_qualifier + + @property + def direction(self) -> TapiCommonPortDirection: + """Gets the direction of this TapiPathComputationPathServiceEndPoint. + + + :return: The direction of this TapiPathComputationPathServiceEndPoint. + :rtype: TapiCommonPortDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonPortDirection): + """Sets the direction of this TapiPathComputationPathServiceEndPoint. + + + :param direction: The direction of this TapiPathComputationPathServiceEndPoint. + :type direction: TapiCommonPortDirection + """ + + self._direction = direction + + @property + def capacity(self) -> TapiCommonCapacity: + """Gets the capacity of this TapiPathComputationPathServiceEndPoint. + + + :return: The capacity of this TapiPathComputationPathServiceEndPoint. + :rtype: TapiCommonCapacity + """ + return self._capacity + + @capacity.setter + def capacity(self, capacity: TapiCommonCapacity): + """Sets the capacity of this TapiPathComputationPathServiceEndPoint. + + + :param capacity: The capacity of this TapiPathComputationPathServiceEndPoint. + :type capacity: TapiCommonCapacity + """ + + self._capacity = capacity diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..5a342c91362908b00bef8bd32cd07fa18cc14612 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_service_end_point_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path_service_end_point import TapiPathComputationPathServiceEndPoint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathServiceEndPointWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, end_point: TapiPathComputationPathServiceEndPoint=None): # noqa: E501 + """TapiPathComputationPathServiceEndPointWrapper - a model defined in Swagger + + :param end_point: The end_point of this TapiPathComputationPathServiceEndPointWrapper. # noqa: E501 + :type end_point: TapiPathComputationPathServiceEndPoint + """ + self.swagger_types = { + 'end_point': TapiPathComputationPathServiceEndPoint + } + + self.attribute_map = { + 'end_point': 'end-point' + } + self._end_point = end_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathServiceEndPointWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathServiceEndPointWrapper of this TapiPathComputationPathServiceEndPointWrapper. # noqa: E501 + :rtype: TapiPathComputationPathServiceEndPointWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def end_point(self) -> TapiPathComputationPathServiceEndPoint: + """Gets the end_point of this TapiPathComputationPathServiceEndPointWrapper. + + + :return: The end_point of this TapiPathComputationPathServiceEndPointWrapper. + :rtype: TapiPathComputationPathServiceEndPoint + """ + return self._end_point + + @end_point.setter + def end_point(self, end_point: TapiPathComputationPathServiceEndPoint): + """Sets the end_point of this TapiPathComputationPathServiceEndPointWrapper. + + + :param end_point: The end_point of this TapiPathComputationPathServiceEndPointWrapper. + :type end_point: TapiPathComputationPathServiceEndPoint + """ + + self._end_point = end_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..8efa8661aaabb60a857c63e480138bed5b61a50f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_path_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_path import TapiPathComputationPath # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationPathWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, path: TapiPathComputationPath=None): # noqa: E501 + """TapiPathComputationPathWrapper - a model defined in Swagger + + :param path: The path of this TapiPathComputationPathWrapper. # noqa: E501 + :type path: TapiPathComputationPath + """ + self.swagger_types = { + 'path': TapiPathComputationPath + } + + self.attribute_map = { + 'path': 'path' + } + self._path = path + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationPathWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.PathWrapper of this TapiPathComputationPathWrapper. # noqa: E501 + :rtype: TapiPathComputationPathWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def path(self) -> TapiPathComputationPath: + """Gets the path of this TapiPathComputationPathWrapper. + + + :return: The path of this TapiPathComputationPathWrapper. + :rtype: TapiPathComputationPath + """ + return self._path + + @path.setter + def path(self, path: TapiPathComputationPath): + """Sets the path of this TapiPathComputationPathWrapper. + + + :param path: The path of this TapiPathComputationPathWrapper. + :type path: TapiPathComputationPath + """ + + self._path = path diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_route_objective_function.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_route_objective_function.py new file mode 100644 index 0000000000000000000000000000000000000000..8822be5acd8cbcbfdacb7bd0cef7c8aea23dabdd --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_route_objective_function.py @@ -0,0 +1,47 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiPathComputationRouteObjectiveFunction(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + MIN_WORK_ROUTE_HOP = "MIN_WORK_ROUTE_HOP" + MIN_WORK_ROUTE_COST = "MIN_WORK_ROUTE_COST" + MIN_WORK_ROUTE_LATENCY = "MIN_WORK_ROUTE_LATENCY" + MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP" + MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST" + MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY" + LOAD_BALANCE_MAX_UNUSED_CAPACITY = "LOAD_BALANCE_MAX_UNUSED_CAPACITY" + def __init__(self): # noqa: E501 + """TapiPathComputationRouteObjectiveFunction - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationRouteObjectiveFunction': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.RouteObjectiveFunction of this TapiPathComputationRouteObjectiveFunction. # noqa: E501 + :rtype: TapiPathComputationRouteObjectiveFunction + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint.py new file mode 100644 index 0000000000000000000000000000000000000000..ac423f8899419eb94b09c5d92183ea52b8e125ea --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint.py @@ -0,0 +1,311 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_diversity_policy import TapiPathComputationDiversityPolicy # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_route_objective_function import TapiPathComputationRouteObjectiveFunction # noqa: F401,E501 +from tapi_server.models.tapi_path_computation_value_or_priority import TapiPathComputationValueOrPriority # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationRoutingConstraint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, is_exclusive: bool=True, max_allowed_cost: TapiPathComputationValueOrPriority=None, diversity_policy: TapiPathComputationDiversityPolicy=None, route_objective_function: TapiPathComputationRouteObjectiveFunction=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, max_allowed_hops: TapiPathComputationValueOrPriority=None, max_allowed_delay: TapiPathComputationValueOrPriority=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic]=None, route_direction: TapiCommonForwardingDirection=None): # noqa: E501 + """TapiPathComputationRoutingConstraint - a model defined in Swagger + + :param is_exclusive: The is_exclusive of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type is_exclusive: bool + :param max_allowed_cost: The max_allowed_cost of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type max_allowed_cost: TapiPathComputationValueOrPriority + :param diversity_policy: The diversity_policy of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type diversity_policy: TapiPathComputationDiversityPolicy + :param route_objective_function: The route_objective_function of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type route_objective_function: TapiPathComputationRouteObjectiveFunction + :param cost_characteristic: The cost_characteristic of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param max_allowed_hops: The max_allowed_hops of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type max_allowed_hops: TapiPathComputationValueOrPriority + :param max_allowed_delay: The max_allowed_delay of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type max_allowed_delay: TapiPathComputationValueOrPriority + :param latency_characteristic: The latency_characteristic of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic] + :param route_direction: The route_direction of this TapiPathComputationRoutingConstraint. # noqa: E501 + :type route_direction: TapiCommonForwardingDirection + """ + self.swagger_types = { + 'is_exclusive': bool, + 'max_allowed_cost': TapiPathComputationValueOrPriority, + 'diversity_policy': TapiPathComputationDiversityPolicy, + 'route_objective_function': TapiPathComputationRouteObjectiveFunction, + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'max_allowed_hops': TapiPathComputationValueOrPriority, + 'max_allowed_delay': TapiPathComputationValueOrPriority, + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'risk_diversity_characteristic': List[TapiTopologyRiskCharacteristic], + 'route_direction': TapiCommonForwardingDirection + } + + self.attribute_map = { + 'is_exclusive': 'is-exclusive', + 'max_allowed_cost': 'max-allowed-cost', + 'diversity_policy': 'diversity-policy', + 'route_objective_function': 'route-objective-function', + 'cost_characteristic': 'cost-characteristic', + 'max_allowed_hops': 'max-allowed-hops', + 'max_allowed_delay': 'max-allowed-delay', + 'latency_characteristic': 'latency-characteristic', + 'risk_diversity_characteristic': 'risk-diversity-characteristic', + 'route_direction': 'route-direction' + } + self._is_exclusive = is_exclusive + self._max_allowed_cost = max_allowed_cost + self._diversity_policy = diversity_policy + self._route_objective_function = route_objective_function + self._cost_characteristic = cost_characteristic + self._max_allowed_hops = max_allowed_hops + self._max_allowed_delay = max_allowed_delay + self._latency_characteristic = latency_characteristic + self._risk_diversity_characteristic = risk_diversity_characteristic + self._route_direction = route_direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationRoutingConstraint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.RoutingConstraint of this TapiPathComputationRoutingConstraint. # noqa: E501 + :rtype: TapiPathComputationRoutingConstraint + """ + return util.deserialize_model(dikt, cls) + + @property + def is_exclusive(self) -> bool: + """Gets the is_exclusive of this TapiPathComputationRoutingConstraint. + + To distinguish if the resources are to be exclusive to the service # noqa: E501 + + :return: The is_exclusive of this TapiPathComputationRoutingConstraint. + :rtype: bool + """ + return self._is_exclusive + + @is_exclusive.setter + def is_exclusive(self, is_exclusive: bool): + """Sets the is_exclusive of this TapiPathComputationRoutingConstraint. + + To distinguish if the resources are to be exclusive to the service # noqa: E501 + + :param is_exclusive: The is_exclusive of this TapiPathComputationRoutingConstraint. + :type is_exclusive: bool + """ + + self._is_exclusive = is_exclusive + + @property + def max_allowed_cost(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_cost of this TapiPathComputationRoutingConstraint. + + + :return: The max_allowed_cost of this TapiPathComputationRoutingConstraint. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_cost + + @max_allowed_cost.setter + def max_allowed_cost(self, max_allowed_cost: TapiPathComputationValueOrPriority): + """Sets the max_allowed_cost of this TapiPathComputationRoutingConstraint. + + + :param max_allowed_cost: The max_allowed_cost of this TapiPathComputationRoutingConstraint. + :type max_allowed_cost: TapiPathComputationValueOrPriority + """ + + self._max_allowed_cost = max_allowed_cost + + @property + def diversity_policy(self) -> TapiPathComputationDiversityPolicy: + """Gets the diversity_policy of this TapiPathComputationRoutingConstraint. + + + :return: The diversity_policy of this TapiPathComputationRoutingConstraint. + :rtype: TapiPathComputationDiversityPolicy + """ + return self._diversity_policy + + @diversity_policy.setter + def diversity_policy(self, diversity_policy: TapiPathComputationDiversityPolicy): + """Sets the diversity_policy of this TapiPathComputationRoutingConstraint. + + + :param diversity_policy: The diversity_policy of this TapiPathComputationRoutingConstraint. + :type diversity_policy: TapiPathComputationDiversityPolicy + """ + + self._diversity_policy = diversity_policy + + @property + def route_objective_function(self) -> TapiPathComputationRouteObjectiveFunction: + """Gets the route_objective_function of this TapiPathComputationRoutingConstraint. + + + :return: The route_objective_function of this TapiPathComputationRoutingConstraint. + :rtype: TapiPathComputationRouteObjectiveFunction + """ + return self._route_objective_function + + @route_objective_function.setter + def route_objective_function(self, route_objective_function: TapiPathComputationRouteObjectiveFunction): + """Sets the route_objective_function of this TapiPathComputationRoutingConstraint. + + + :param route_objective_function: The route_objective_function of this TapiPathComputationRoutingConstraint. + :type route_objective_function: TapiPathComputationRouteObjectiveFunction + """ + + self._route_objective_function = route_objective_function + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiPathComputationRoutingConstraint. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiPathComputationRoutingConstraint. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiPathComputationRoutingConstraint. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiPathComputationRoutingConstraint. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def max_allowed_hops(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_hops of this TapiPathComputationRoutingConstraint. + + + :return: The max_allowed_hops of this TapiPathComputationRoutingConstraint. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_hops + + @max_allowed_hops.setter + def max_allowed_hops(self, max_allowed_hops: TapiPathComputationValueOrPriority): + """Sets the max_allowed_hops of this TapiPathComputationRoutingConstraint. + + + :param max_allowed_hops: The max_allowed_hops of this TapiPathComputationRoutingConstraint. + :type max_allowed_hops: TapiPathComputationValueOrPriority + """ + + self._max_allowed_hops = max_allowed_hops + + @property + def max_allowed_delay(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_delay of this TapiPathComputationRoutingConstraint. + + + :return: The max_allowed_delay of this TapiPathComputationRoutingConstraint. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_delay + + @max_allowed_delay.setter + def max_allowed_delay(self, max_allowed_delay: TapiPathComputationValueOrPriority): + """Sets the max_allowed_delay of this TapiPathComputationRoutingConstraint. + + + :param max_allowed_delay: The max_allowed_delay of this TapiPathComputationRoutingConstraint. + :type max_allowed_delay: TapiPathComputationValueOrPriority + """ + + self._max_allowed_delay = max_allowed_delay + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiPathComputationRoutingConstraint. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiPathComputationRoutingConstraint. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiPathComputationRoutingConstraint. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiPathComputationRoutingConstraint. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def risk_diversity_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_diversity_characteristic of this TapiPathComputationRoutingConstraint. + + none # noqa: E501 + + :return: The risk_diversity_characteristic of this TapiPathComputationRoutingConstraint. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_diversity_characteristic + + @risk_diversity_characteristic.setter + def risk_diversity_characteristic(self, risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_diversity_characteristic of this TapiPathComputationRoutingConstraint. + + none # noqa: E501 + + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiPathComputationRoutingConstraint. + :type risk_diversity_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_diversity_characteristic = risk_diversity_characteristic + + @property + def route_direction(self) -> TapiCommonForwardingDirection: + """Gets the route_direction of this TapiPathComputationRoutingConstraint. + + + :return: The route_direction of this TapiPathComputationRoutingConstraint. + :rtype: TapiCommonForwardingDirection + """ + return self._route_direction + + @route_direction.setter + def route_direction(self, route_direction: TapiCommonForwardingDirection): + """Sets the route_direction of this TapiPathComputationRoutingConstraint. + + + :param route_direction: The route_direction of this TapiPathComputationRoutingConstraint. + :type route_direction: TapiCommonForwardingDirection + """ + + self._route_direction = route_direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..83d0b2ea73efe78e6490787bd3644149363338cc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_routing_constraint_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_routing_constraint import TapiPathComputationRoutingConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationRoutingConstraintWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, routing_constraint: TapiPathComputationRoutingConstraint=None): # noqa: E501 + """TapiPathComputationRoutingConstraintWrapper - a model defined in Swagger + + :param routing_constraint: The routing_constraint of this TapiPathComputationRoutingConstraintWrapper. # noqa: E501 + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + self.swagger_types = { + 'routing_constraint': TapiPathComputationRoutingConstraint + } + + self.attribute_map = { + 'routing_constraint': 'routing-constraint' + } + self._routing_constraint = routing_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationRoutingConstraintWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.RoutingConstraintWrapper of this TapiPathComputationRoutingConstraintWrapper. # noqa: E501 + :rtype: TapiPathComputationRoutingConstraintWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def routing_constraint(self) -> TapiPathComputationRoutingConstraint: + """Gets the routing_constraint of this TapiPathComputationRoutingConstraintWrapper. + + + :return: The routing_constraint of this TapiPathComputationRoutingConstraintWrapper. + :rtype: TapiPathComputationRoutingConstraint + """ + return self._routing_constraint + + @routing_constraint.setter + def routing_constraint(self, routing_constraint: TapiPathComputationRoutingConstraint): + """Sets the routing_constraint of this TapiPathComputationRoutingConstraintWrapper. + + + :param routing_constraint: The routing_constraint of this TapiPathComputationRoutingConstraintWrapper. + :type routing_constraint: TapiPathComputationRoutingConstraint + """ + + self._routing_constraint = routing_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint.py new file mode 100644 index 0000000000000000000000000000000000000000..b55c2a0d51fb74f7023aa8d03223d45804d9e2de --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint.py @@ -0,0 +1,289 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationTopologyConstraint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, include_node: List[str]=None, exclude_link: List[str]=None, avoid_topology: List[str]=None, exclude_path: List[str]=None, include_link: List[str]=None, preferred_transport_layer: List[TapiCommonLayerProtocolName]=None, exclude_node: List[str]=None, include_topology: List[str]=None, include_path: List[str]=None): # noqa: E501 + """TapiPathComputationTopologyConstraint - a model defined in Swagger + + :param include_node: The include_node of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type include_node: List[str] + :param exclude_link: The exclude_link of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type exclude_link: List[str] + :param avoid_topology: The avoid_topology of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type avoid_topology: List[str] + :param exclude_path: The exclude_path of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type exclude_path: List[str] + :param include_link: The include_link of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type include_link: List[str] + :param preferred_transport_layer: The preferred_transport_layer of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type preferred_transport_layer: List[TapiCommonLayerProtocolName] + :param exclude_node: The exclude_node of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type exclude_node: List[str] + :param include_topology: The include_topology of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type include_topology: List[str] + :param include_path: The include_path of this TapiPathComputationTopologyConstraint. # noqa: E501 + :type include_path: List[str] + """ + self.swagger_types = { + 'include_node': List[str], + 'exclude_link': List[str], + 'avoid_topology': List[str], + 'exclude_path': List[str], + 'include_link': List[str], + 'preferred_transport_layer': List[TapiCommonLayerProtocolName], + 'exclude_node': List[str], + 'include_topology': List[str], + 'include_path': List[str] + } + + self.attribute_map = { + 'include_node': 'include-node', + 'exclude_link': 'exclude-link', + 'avoid_topology': 'avoid-topology', + 'exclude_path': 'exclude-path', + 'include_link': 'include-link', + 'preferred_transport_layer': 'preferred-transport-layer', + 'exclude_node': 'exclude-node', + 'include_topology': 'include-topology', + 'include_path': 'include-path' + } + self._include_node = include_node + self._exclude_link = exclude_link + self._avoid_topology = avoid_topology + self._exclude_path = exclude_path + self._include_link = include_link + self._preferred_transport_layer = preferred_transport_layer + self._exclude_node = exclude_node + self._include_topology = include_topology + self._include_path = include_path + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationTopologyConstraint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.TopologyConstraint of this TapiPathComputationTopologyConstraint. # noqa: E501 + :rtype: TapiPathComputationTopologyConstraint + """ + return util.deserialize_model(dikt, cls) + + @property + def include_node(self) -> List[str]: + """Gets the include_node of this TapiPathComputationTopologyConstraint. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :return: The include_node of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._include_node + + @include_node.setter + def include_node(self, include_node: List[str]): + """Sets the include_node of this TapiPathComputationTopologyConstraint. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :param include_node: The include_node of this TapiPathComputationTopologyConstraint. + :type include_node: List[str] + """ + + self._include_node = include_node + + @property + def exclude_link(self) -> List[str]: + """Gets the exclude_link of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The exclude_link of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._exclude_link + + @exclude_link.setter + def exclude_link(self, exclude_link: List[str]): + """Sets the exclude_link of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param exclude_link: The exclude_link of this TapiPathComputationTopologyConstraint. + :type exclude_link: List[str] + """ + + self._exclude_link = exclude_link + + @property + def avoid_topology(self) -> List[str]: + """Gets the avoid_topology of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The avoid_topology of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._avoid_topology + + @avoid_topology.setter + def avoid_topology(self, avoid_topology: List[str]): + """Sets the avoid_topology of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param avoid_topology: The avoid_topology of this TapiPathComputationTopologyConstraint. + :type avoid_topology: List[str] + """ + + self._avoid_topology = avoid_topology + + @property + def exclude_path(self) -> List[str]: + """Gets the exclude_path of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The exclude_path of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._exclude_path + + @exclude_path.setter + def exclude_path(self, exclude_path: List[str]): + """Sets the exclude_path of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param exclude_path: The exclude_path of this TapiPathComputationTopologyConstraint. + :type exclude_path: List[str] + """ + + self._exclude_path = exclude_path + + @property + def include_link(self) -> List[str]: + """Gets the include_link of this TapiPathComputationTopologyConstraint. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :return: The include_link of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._include_link + + @include_link.setter + def include_link(self, include_link: List[str]): + """Sets the include_link of this TapiPathComputationTopologyConstraint. + + This is a loose constraint - that is it is unordered and could be a partial list # noqa: E501 + + :param include_link: The include_link of this TapiPathComputationTopologyConstraint. + :type include_link: List[str] + """ + + self._include_link = include_link + + @property + def preferred_transport_layer(self) -> List[TapiCommonLayerProtocolName]: + """Gets the preferred_transport_layer of this TapiPathComputationTopologyConstraint. + + soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers # noqa: E501 + + :return: The preferred_transport_layer of this TapiPathComputationTopologyConstraint. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._preferred_transport_layer + + @preferred_transport_layer.setter + def preferred_transport_layer(self, preferred_transport_layer: List[TapiCommonLayerProtocolName]): + """Sets the preferred_transport_layer of this TapiPathComputationTopologyConstraint. + + soft constraint requested by client to indicate the layer(s) of transport connection that it prefers to carry the service. This could be same as the service layer or one of the supported server layers # noqa: E501 + + :param preferred_transport_layer: The preferred_transport_layer of this TapiPathComputationTopologyConstraint. + :type preferred_transport_layer: List[TapiCommonLayerProtocolName] + """ + + self._preferred_transport_layer = preferred_transport_layer + + @property + def exclude_node(self) -> List[str]: + """Gets the exclude_node of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The exclude_node of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._exclude_node + + @exclude_node.setter + def exclude_node(self, exclude_node: List[str]): + """Sets the exclude_node of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param exclude_node: The exclude_node of this TapiPathComputationTopologyConstraint. + :type exclude_node: List[str] + """ + + self._exclude_node = exclude_node + + @property + def include_topology(self) -> List[str]: + """Gets the include_topology of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The include_topology of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._include_topology + + @include_topology.setter + def include_topology(self, include_topology: List[str]): + """Sets the include_topology of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param include_topology: The include_topology of this TapiPathComputationTopologyConstraint. + :type include_topology: List[str] + """ + + self._include_topology = include_topology + + @property + def include_path(self) -> List[str]: + """Gets the include_path of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :return: The include_path of this TapiPathComputationTopologyConstraint. + :rtype: List[str] + """ + return self._include_path + + @include_path.setter + def include_path(self, include_path: List[str]): + """Sets the include_path of this TapiPathComputationTopologyConstraint. + + none # noqa: E501 + + :param include_path: The include_path of this TapiPathComputationTopologyConstraint. + :type include_path: List[str] + """ + + self._include_path = include_path diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..441c005304f7e2d56174271c3680074d5fbee9bc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_topology_constraint_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_topology_constraint import TapiPathComputationTopologyConstraint # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationTopologyConstraintWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_constraint: TapiPathComputationTopologyConstraint=None): # noqa: E501 + """TapiPathComputationTopologyConstraintWrapper - a model defined in Swagger + + :param topology_constraint: The topology_constraint of this TapiPathComputationTopologyConstraintWrapper. # noqa: E501 + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + self.swagger_types = { + 'topology_constraint': TapiPathComputationTopologyConstraint + } + + self.attribute_map = { + 'topology_constraint': 'topology-constraint' + } + self._topology_constraint = topology_constraint + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationTopologyConstraintWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.TopologyConstraintWrapper of this TapiPathComputationTopologyConstraintWrapper. # noqa: E501 + :rtype: TapiPathComputationTopologyConstraintWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_constraint(self) -> TapiPathComputationTopologyConstraint: + """Gets the topology_constraint of this TapiPathComputationTopologyConstraintWrapper. + + + :return: The topology_constraint of this TapiPathComputationTopologyConstraintWrapper. + :rtype: TapiPathComputationTopologyConstraint + """ + return self._topology_constraint + + @topology_constraint.setter + def topology_constraint(self, topology_constraint: TapiPathComputationTopologyConstraint): + """Sets the topology_constraint of this TapiPathComputationTopologyConstraintWrapper. + + + :param topology_constraint: The topology_constraint of this TapiPathComputationTopologyConstraintWrapper. + :type topology_constraint: TapiPathComputationTopologyConstraint + """ + + self._topology_constraint = topology_constraint diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority.py new file mode 100644 index 0000000000000000000000000000000000000000..b53d84e70763f38213e41c7c71448e58bdfd3929 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiPathComputationValueOrPriority(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, priority: int=None, value: int=None): # noqa: E501 + """TapiPathComputationValueOrPriority - a model defined in Swagger + + :param priority: The priority of this TapiPathComputationValueOrPriority. # noqa: E501 + :type priority: int + :param value: The value of this TapiPathComputationValueOrPriority. # noqa: E501 + :type value: int + """ + self.swagger_types = { + 'priority': int, + 'value': int + } + + self.attribute_map = { + 'priority': 'priority', + 'value': 'value' + } + self._priority = priority + self._value = value + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationValueOrPriority': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.ValueOrPriority of this TapiPathComputationValueOrPriority. # noqa: E501 + :rtype: TapiPathComputationValueOrPriority + """ + return util.deserialize_model(dikt, cls) + + @property + def priority(self) -> int: + """Gets the priority of this TapiPathComputationValueOrPriority. + + none # noqa: E501 + + :return: The priority of this TapiPathComputationValueOrPriority. + :rtype: int + """ + return self._priority + + @priority.setter + def priority(self, priority: int): + """Sets the priority of this TapiPathComputationValueOrPriority. + + none # noqa: E501 + + :param priority: The priority of this TapiPathComputationValueOrPriority. + :type priority: int + """ + + self._priority = priority + + @property + def value(self) -> int: + """Gets the value of this TapiPathComputationValueOrPriority. + + none # noqa: E501 + + :return: The value of this TapiPathComputationValueOrPriority. + :rtype: int + """ + return self._value + + @value.setter + def value(self, value: int): + """Sets the value of this TapiPathComputationValueOrPriority. + + none # noqa: E501 + + :param value: The value of this TapiPathComputationValueOrPriority. + :type value: int + """ + + self._value = value diff --git a/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..d2ea24076e98c830ac0a29acd6bf1d2880d9394b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_path_computation_value_or_priority_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_path_computation_value_or_priority import TapiPathComputationValueOrPriority # noqa: F401,E501 +from tapi_server import util + + +class TapiPathComputationValueOrPriorityWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, max_allowed_cost: TapiPathComputationValueOrPriority=None): # noqa: E501 + """TapiPathComputationValueOrPriorityWrapper - a model defined in Swagger + + :param max_allowed_cost: The max_allowed_cost of this TapiPathComputationValueOrPriorityWrapper. # noqa: E501 + :type max_allowed_cost: TapiPathComputationValueOrPriority + """ + self.swagger_types = { + 'max_allowed_cost': TapiPathComputationValueOrPriority + } + + self.attribute_map = { + 'max_allowed_cost': 'max-allowed-cost' + } + self._max_allowed_cost = max_allowed_cost + + @classmethod + def from_dict(cls, dikt) -> 'TapiPathComputationValueOrPriorityWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.path.computation.ValueOrPriorityWrapper of this TapiPathComputationValueOrPriorityWrapper. # noqa: E501 + :rtype: TapiPathComputationValueOrPriorityWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def max_allowed_cost(self) -> TapiPathComputationValueOrPriority: + """Gets the max_allowed_cost of this TapiPathComputationValueOrPriorityWrapper. + + + :return: The max_allowed_cost of this TapiPathComputationValueOrPriorityWrapper. + :rtype: TapiPathComputationValueOrPriority + """ + return self._max_allowed_cost + + @max_allowed_cost.setter + def max_allowed_cost(self, max_allowed_cost: TapiPathComputationValueOrPriority): + """Sets the max_allowed_cost of this TapiPathComputationValueOrPriorityWrapper. + + + :param max_allowed_cost: The max_allowed_cost of this TapiPathComputationValueOrPriorityWrapper. + :type max_allowed_cost: TapiPathComputationValueOrPriority + """ + + self._max_allowed_cost = max_allowed_cost diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference.py new file mode 100644 index 0000000000000000000000000000000000000000..e759188d47a927436ed70a256e2063935a03013d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyConnectionSpecReference(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_spec_name: str=None, connection_spec_id: str=None): # noqa: E501 + """TapiTopologyConnectionSpecReference - a model defined in Swagger + + :param connection_spec_name: The connection_spec_name of this TapiTopologyConnectionSpecReference. # noqa: E501 + :type connection_spec_name: str + :param connection_spec_id: The connection_spec_id of this TapiTopologyConnectionSpecReference. # noqa: E501 + :type connection_spec_id: str + """ + self.swagger_types = { + 'connection_spec_name': str, + 'connection_spec_id': str + } + + self.attribute_map = { + 'connection_spec_name': 'connection-spec-name', + 'connection_spec_id': 'connection-spec-id' + } + self._connection_spec_name = connection_spec_name + self._connection_spec_id = connection_spec_id + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyConnectionSpecReference': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ConnectionSpecReference of this TapiTopologyConnectionSpecReference. # noqa: E501 + :rtype: TapiTopologyConnectionSpecReference + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_spec_name(self) -> str: + """Gets the connection_spec_name of this TapiTopologyConnectionSpecReference. + + The name of the connection type spec. This can be used as a reference to a paper document where full formal machine interpretable specs are not supported. # noqa: E501 + + :return: The connection_spec_name of this TapiTopologyConnectionSpecReference. + :rtype: str + """ + return self._connection_spec_name + + @connection_spec_name.setter + def connection_spec_name(self, connection_spec_name: str): + """Sets the connection_spec_name of this TapiTopologyConnectionSpecReference. + + The name of the connection type spec. This can be used as a reference to a paper document where full formal machine interpretable specs are not supported. # noqa: E501 + + :param connection_spec_name: The connection_spec_name of this TapiTopologyConnectionSpecReference. + :type connection_spec_name: str + """ + + self._connection_spec_name = connection_spec_name + + @property + def connection_spec_id(self) -> str: + """Gets the connection_spec_id of this TapiTopologyConnectionSpecReference. + + The reference to a formal spec. This reference need not be provided (e.g., where there is no formal machine interpretable spec for the type of connection). # noqa: E501 + + :return: The connection_spec_id of this TapiTopologyConnectionSpecReference. + :rtype: str + """ + return self._connection_spec_id + + @connection_spec_id.setter + def connection_spec_id(self, connection_spec_id: str): + """Sets the connection_spec_id of this TapiTopologyConnectionSpecReference. + + The reference to a formal spec. This reference need not be provided (e.g., where there is no formal machine interpretable spec for the type of connection). # noqa: E501 + + :param connection_spec_id: The connection_spec_id of this TapiTopologyConnectionSpecReference. + :type connection_spec_id: str + """ + + self._connection_spec_id = connection_spec_id diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..67365cb2bf8416211ed7cb2e6e115ff3c6136dfb --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_connection_spec_reference_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_connection_spec_reference import TapiTopologyConnectionSpecReference # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyConnectionSpecReferenceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, connection_spec_reference: TapiTopologyConnectionSpecReference=None): # noqa: E501 + """TapiTopologyConnectionSpecReferenceWrapper - a model defined in Swagger + + :param connection_spec_reference: The connection_spec_reference of this TapiTopologyConnectionSpecReferenceWrapper. # noqa: E501 + :type connection_spec_reference: TapiTopologyConnectionSpecReference + """ + self.swagger_types = { + 'connection_spec_reference': TapiTopologyConnectionSpecReference + } + + self.attribute_map = { + 'connection_spec_reference': 'connection-spec-reference' + } + self._connection_spec_reference = connection_spec_reference + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyConnectionSpecReferenceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ConnectionSpecReferenceWrapper of this TapiTopologyConnectionSpecReferenceWrapper. # noqa: E501 + :rtype: TapiTopologyConnectionSpecReferenceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def connection_spec_reference(self) -> TapiTopologyConnectionSpecReference: + """Gets the connection_spec_reference of this TapiTopologyConnectionSpecReferenceWrapper. + + + :return: The connection_spec_reference of this TapiTopologyConnectionSpecReferenceWrapper. + :rtype: TapiTopologyConnectionSpecReference + """ + return self._connection_spec_reference + + @connection_spec_reference.setter + def connection_spec_reference(self, connection_spec_reference: TapiTopologyConnectionSpecReference): + """Sets the connection_spec_reference of this TapiTopologyConnectionSpecReferenceWrapper. + + + :param connection_spec_reference: The connection_spec_reference of this TapiTopologyConnectionSpecReferenceWrapper. + :type connection_spec_reference: TapiTopologyConnectionSpecReference + """ + + self._connection_spec_reference = connection_spec_reference diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_context_augmentation4.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_context_augmentation4.py new file mode 100644 index 0000000000000000000000000000000000000000..873d348406861edcad45039aec1bdf9a4acc939e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_context_augmentation4.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_context import TapiTopologyTopologyContext # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyContextAugmentation4(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_context: TapiTopologyTopologyContext=None): # noqa: E501 + """TapiTopologyContextAugmentation4 - a model defined in Swagger + + :param topology_context: The topology_context of this TapiTopologyContextAugmentation4. # noqa: E501 + :type topology_context: TapiTopologyTopologyContext + """ + self.swagger_types = { + 'topology_context': TapiTopologyTopologyContext + } + + self.attribute_map = { + 'topology_context': 'topology-context' + } + self._topology_context = topology_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyContextAugmentation4': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ContextAugmentation4 of this TapiTopologyContextAugmentation4. # noqa: E501 + :rtype: TapiTopologyContextAugmentation4 + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_context(self) -> TapiTopologyTopologyContext: + """Gets the topology_context of this TapiTopologyContextAugmentation4. + + + :return: The topology_context of this TapiTopologyContextAugmentation4. + :rtype: TapiTopologyTopologyContext + """ + return self._topology_context + + @topology_context.setter + def topology_context(self, topology_context: TapiTopologyTopologyContext): + """Sets the topology_context of this TapiTopologyContextAugmentation4. + + + :param topology_context: The topology_context of this TapiTopologyContextAugmentation4. + :type topology_context: TapiTopologyTopologyContext + """ + + self._topology_context = topology_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic.py new file mode 100644 index 0000000000000000000000000000000000000000..86b11fe77c24191f115a83a449a40f303b341a2e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyCostCharacteristic(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cost_value: str=None, cost_algorithm: str=None, cost_name: str=None): # noqa: E501 + """TapiTopologyCostCharacteristic - a model defined in Swagger + + :param cost_value: The cost_value of this TapiTopologyCostCharacteristic. # noqa: E501 + :type cost_value: str + :param cost_algorithm: The cost_algorithm of this TapiTopologyCostCharacteristic. # noqa: E501 + :type cost_algorithm: str + :param cost_name: The cost_name of this TapiTopologyCostCharacteristic. # noqa: E501 + :type cost_name: str + """ + self.swagger_types = { + 'cost_value': str, + 'cost_algorithm': str, + 'cost_name': str + } + + self.attribute_map = { + 'cost_value': 'cost-value', + 'cost_algorithm': 'cost-algorithm', + 'cost_name': 'cost-name' + } + self._cost_value = cost_value + self._cost_algorithm = cost_algorithm + self._cost_name = cost_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyCostCharacteristic': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.CostCharacteristic of this TapiTopologyCostCharacteristic. # noqa: E501 + :rtype: TapiTopologyCostCharacteristic + """ + return util.deserialize_model(dikt, cls) + + @property + def cost_value(self) -> str: + """Gets the cost_value of this TapiTopologyCostCharacteristic. + + The specific cost. # noqa: E501 + + :return: The cost_value of this TapiTopologyCostCharacteristic. + :rtype: str + """ + return self._cost_value + + @cost_value.setter + def cost_value(self, cost_value: str): + """Sets the cost_value of this TapiTopologyCostCharacteristic. + + The specific cost. # noqa: E501 + + :param cost_value: The cost_value of this TapiTopologyCostCharacteristic. + :type cost_value: str + """ + + self._cost_value = cost_value + + @property + def cost_algorithm(self) -> str: + """Gets the cost_algorithm of this TapiTopologyCostCharacteristic. + + The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm. # noqa: E501 + + :return: The cost_algorithm of this TapiTopologyCostCharacteristic. + :rtype: str + """ + return self._cost_algorithm + + @cost_algorithm.setter + def cost_algorithm(self, cost_algorithm: str): + """Sets the cost_algorithm of this TapiTopologyCostCharacteristic. + + The cost may vary based upon some properties of the TopologicalEntity. The rules for the variation are conveyed by the costAlgorithm. # noqa: E501 + + :param cost_algorithm: The cost_algorithm of this TapiTopologyCostCharacteristic. + :type cost_algorithm: str + """ + + self._cost_algorithm = cost_algorithm + + @property + def cost_name(self) -> str: + """Gets the cost_name of this TapiTopologyCostCharacteristic. + + The cost characteristic will related to some aspect of the TopologicalEntity (e.g. $ cost, routing weight). This aspect will be conveyed by the costName. # noqa: E501 + + :return: The cost_name of this TapiTopologyCostCharacteristic. + :rtype: str + """ + return self._cost_name + + @cost_name.setter + def cost_name(self, cost_name: str): + """Sets the cost_name of this TapiTopologyCostCharacteristic. + + The cost characteristic will related to some aspect of the TopologicalEntity (e.g. $ cost, routing weight). This aspect will be conveyed by the costName. # noqa: E501 + + :param cost_name: The cost_name of this TapiTopologyCostCharacteristic. + :type cost_name: str + """ + + self._cost_name = cost_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..360442c00da909c10f61f24482013195560d5c35 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_cost_characteristic_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyCostCharacteristicWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cost_characteristic: TapiTopologyCostCharacteristic=None): # noqa: E501 + """TapiTopologyCostCharacteristicWrapper - a model defined in Swagger + + :param cost_characteristic: The cost_characteristic of this TapiTopologyCostCharacteristicWrapper. # noqa: E501 + :type cost_characteristic: TapiTopologyCostCharacteristic + """ + self.swagger_types = { + 'cost_characteristic': TapiTopologyCostCharacteristic + } + + self.attribute_map = { + 'cost_characteristic': 'cost-characteristic' + } + self._cost_characteristic = cost_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyCostCharacteristicWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.CostCharacteristicWrapper of this TapiTopologyCostCharacteristicWrapper. # noqa: E501 + :rtype: TapiTopologyCostCharacteristicWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def cost_characteristic(self) -> TapiTopologyCostCharacteristic: + """Gets the cost_characteristic of this TapiTopologyCostCharacteristicWrapper. + + + :return: The cost_characteristic of this TapiTopologyCostCharacteristicWrapper. + :rtype: TapiTopologyCostCharacteristic + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: TapiTopologyCostCharacteristic): + """Sets the cost_characteristic of this TapiTopologyCostCharacteristicWrapper. + + + :param cost_characteristic: The cost_characteristic of this TapiTopologyCostCharacteristicWrapper. + :type cost_characteristic: TapiTopologyCostCharacteristic + """ + + self._cost_characteristic = cost_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_forwarding_rule.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_forwarding_rule.py new file mode 100644 index 0000000000000000000000000000000000000000..d976ccfb79aade750bf5798dd8bef4d827956327 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_forwarding_rule.py @@ -0,0 +1,45 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyForwardingRule(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + MAY_FORWARD_ACROSS_GROUP = "MAY_FORWARD_ACROSS_GROUP" + MUST_FORWARD_ACROSS_GROUP = "MUST_FORWARD_ACROSS_GROUP" + CANNOT_FORWARD_ACROSS_GROUP = "CANNOT_FORWARD_ACROSS_GROUP" + NO_STATEMENT_ON_FORWARDING = "NO_STATEMENT_ON_FORWARDING" + INTER_CONNECTION_CONTENTION = "INTER_CONNECTION_CONTENTION" + def __init__(self): # noqa: E501 + """TapiTopologyForwardingRule - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyForwardingRule': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ForwardingRule of this TapiTopologyForwardingRule. # noqa: E501 + :rtype: TapiTopologyForwardingRule + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_get_link_details.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_link_details.py new file mode 100644 index 0000000000000000000000000000000000000000..3b480a1fb2da271966e241548bd3db08646fe9f3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_link_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getlinkdetails_output import TapiTopologyGetlinkdetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetLinkDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiTopologyGetlinkdetailsOutput=None): # noqa: E501 + """TapiTopologyGetLinkDetails - a model defined in Swagger + + :param output: The output of this TapiTopologyGetLinkDetails. # noqa: E501 + :type output: TapiTopologyGetlinkdetailsOutput + """ + self.swagger_types = { + 'output': TapiTopologyGetlinkdetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetLinkDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.GetLinkDetails of this TapiTopologyGetLinkDetails. # noqa: E501 + :rtype: TapiTopologyGetLinkDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiTopologyGetlinkdetailsOutput: + """Gets the output of this TapiTopologyGetLinkDetails. + + + :return: The output of this TapiTopologyGetLinkDetails. + :rtype: TapiTopologyGetlinkdetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiTopologyGetlinkdetailsOutput): + """Sets the output of this TapiTopologyGetLinkDetails. + + + :param output: The output of this TapiTopologyGetLinkDetails. + :type output: TapiTopologyGetlinkdetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_details.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_details.py new file mode 100644 index 0000000000000000000000000000000000000000..b60d9cc9a2e9b7c15bdeebd3ac1b1fffbd335c90 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getnodedetails_output import TapiTopologyGetnodedetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetNodeDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiTopologyGetnodedetailsOutput=None): # noqa: E501 + """TapiTopologyGetNodeDetails - a model defined in Swagger + + :param output: The output of this TapiTopologyGetNodeDetails. # noqa: E501 + :type output: TapiTopologyGetnodedetailsOutput + """ + self.swagger_types = { + 'output': TapiTopologyGetnodedetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetNodeDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.GetNodeDetails of this TapiTopologyGetNodeDetails. # noqa: E501 + :rtype: TapiTopologyGetNodeDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiTopologyGetnodedetailsOutput: + """Gets the output of this TapiTopologyGetNodeDetails. + + + :return: The output of this TapiTopologyGetNodeDetails. + :rtype: TapiTopologyGetnodedetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiTopologyGetnodedetailsOutput): + """Sets the output of this TapiTopologyGetNodeDetails. + + + :param output: The output of this TapiTopologyGetNodeDetails. + :type output: TapiTopologyGetnodedetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_edge_point_details.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_edge_point_details.py new file mode 100644 index 0000000000000000000000000000000000000000..bf0fc4167dd95fc7f8b5ba5eb65f5508b0fe05c9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_node_edge_point_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_getnodeedgepointdetails_output import TapiTopologyGetnodeedgepointdetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetNodeEdgePointDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiTopologyGetnodeedgepointdetailsOutput=None): # noqa: E501 + """TapiTopologyGetNodeEdgePointDetails - a model defined in Swagger + + :param output: The output of this TapiTopologyGetNodeEdgePointDetails. # noqa: E501 + :type output: TapiTopologyGetnodeedgepointdetailsOutput + """ + self.swagger_types = { + 'output': TapiTopologyGetnodeedgepointdetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetNodeEdgePointDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.GetNodeEdgePointDetails of this TapiTopologyGetNodeEdgePointDetails. # noqa: E501 + :rtype: TapiTopologyGetNodeEdgePointDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiTopologyGetnodeedgepointdetailsOutput: + """Gets the output of this TapiTopologyGetNodeEdgePointDetails. + + + :return: The output of this TapiTopologyGetNodeEdgePointDetails. + :rtype: TapiTopologyGetnodeedgepointdetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiTopologyGetnodeedgepointdetailsOutput): + """Sets the output of this TapiTopologyGetNodeEdgePointDetails. + + + :param output: The output of this TapiTopologyGetNodeEdgePointDetails. + :type output: TapiTopologyGetnodeedgepointdetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_details.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_details.py new file mode 100644 index 0000000000000000000000000000000000000000..0a68c6e4dbd2f0376fed41e4efc3baf18bc4880e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_details.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_gettopologydetails_output import TapiTopologyGettopologydetailsOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetTopologyDetails(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiTopologyGettopologydetailsOutput=None): # noqa: E501 + """TapiTopologyGetTopologyDetails - a model defined in Swagger + + :param output: The output of this TapiTopologyGetTopologyDetails. # noqa: E501 + :type output: TapiTopologyGettopologydetailsOutput + """ + self.swagger_types = { + 'output': TapiTopologyGettopologydetailsOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetTopologyDetails': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.GetTopologyDetails of this TapiTopologyGetTopologyDetails. # noqa: E501 + :rtype: TapiTopologyGetTopologyDetails + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiTopologyGettopologydetailsOutput: + """Gets the output of this TapiTopologyGetTopologyDetails. + + + :return: The output of this TapiTopologyGetTopologyDetails. + :rtype: TapiTopologyGettopologydetailsOutput + """ + return self._output + + @output.setter + def output(self, output: TapiTopologyGettopologydetailsOutput): + """Sets the output of this TapiTopologyGetTopologyDetails. + + + :param output: The output of this TapiTopologyGetTopologyDetails. + :type output: TapiTopologyGettopologydetailsOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_list.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_list.py new file mode 100644 index 0000000000000000000000000000000000000000..88a3eceddd0d54b21db6102e7cf83c85c47edbdf --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_get_topology_list.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_gettopologylist_output import TapiTopologyGettopologylistOutput # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetTopologyList(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, output: TapiTopologyGettopologylistOutput=None): # noqa: E501 + """TapiTopologyGetTopologyList - a model defined in Swagger + + :param output: The output of this TapiTopologyGetTopologyList. # noqa: E501 + :type output: TapiTopologyGettopologylistOutput + """ + self.swagger_types = { + 'output': TapiTopologyGettopologylistOutput + } + + self.attribute_map = { + 'output': 'output' + } + self._output = output + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetTopologyList': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.GetTopologyList of this TapiTopologyGetTopologyList. # noqa: E501 + :rtype: TapiTopologyGetTopologyList + """ + return util.deserialize_model(dikt, cls) + + @property + def output(self) -> TapiTopologyGettopologylistOutput: + """Gets the output of this TapiTopologyGetTopologyList. + + + :return: The output of this TapiTopologyGetTopologyList. + :rtype: TapiTopologyGettopologylistOutput + """ + return self._output + + @output.setter + def output(self, output: TapiTopologyGettopologylistOutput): + """Sets the output of this TapiTopologyGetTopologyList. + + + :param output: The output of this TapiTopologyGetTopologyList. + :type output: TapiTopologyGettopologylistOutput + """ + + self._output = output diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..f838f3d4707f34153b17ac45c5063907171ee38f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_input.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyGetlinkdetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, link_id_or_name: str=None, topology_id_or_name: str=None): # noqa: E501 + """TapiTopologyGetlinkdetailsInput - a model defined in Swagger + + :param link_id_or_name: The link_id_or_name of this TapiTopologyGetlinkdetailsInput. # noqa: E501 + :type link_id_or_name: str + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetlinkdetailsInput. # noqa: E501 + :type topology_id_or_name: str + """ + self.swagger_types = { + 'link_id_or_name': str, + 'topology_id_or_name': str + } + + self.attribute_map = { + 'link_id_or_name': 'link-id-or-name', + 'topology_id_or_name': 'topology-id-or-name' + } + self._link_id_or_name = link_id_or_name + self._topology_id_or_name = topology_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetlinkdetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getlinkdetails.Input of this TapiTopologyGetlinkdetailsInput. # noqa: E501 + :rtype: TapiTopologyGetlinkdetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def link_id_or_name(self) -> str: + """Gets the link_id_or_name of this TapiTopologyGetlinkdetailsInput. + + none # noqa: E501 + + :return: The link_id_or_name of this TapiTopologyGetlinkdetailsInput. + :rtype: str + """ + return self._link_id_or_name + + @link_id_or_name.setter + def link_id_or_name(self, link_id_or_name: str): + """Sets the link_id_or_name of this TapiTopologyGetlinkdetailsInput. + + none # noqa: E501 + + :param link_id_or_name: The link_id_or_name of this TapiTopologyGetlinkdetailsInput. + :type link_id_or_name: str + """ + + self._link_id_or_name = link_id_or_name + + @property + def topology_id_or_name(self) -> str: + """Gets the topology_id_or_name of this TapiTopologyGetlinkdetailsInput. + + none # noqa: E501 + + :return: The topology_id_or_name of this TapiTopologyGetlinkdetailsInput. + :rtype: str + """ + return self._topology_id_or_name + + @topology_id_or_name.setter + def topology_id_or_name(self, topology_id_or_name: str): + """Sets the topology_id_or_name of this TapiTopologyGetlinkdetailsInput. + + none # noqa: E501 + + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetlinkdetailsInput. + :type topology_id_or_name: str + """ + + self._topology_id_or_name = topology_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..95b662e2fecc9f78ee17c15b8ee9bc84943ce119 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getlinkdetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_link import TapiTopologyLink # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetlinkdetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, link: TapiTopologyLink=None): # noqa: E501 + """TapiTopologyGetlinkdetailsOutput - a model defined in Swagger + + :param link: The link of this TapiTopologyGetlinkdetailsOutput. # noqa: E501 + :type link: TapiTopologyLink + """ + self.swagger_types = { + 'link': TapiTopologyLink + } + + self.attribute_map = { + 'link': 'link' + } + self._link = link + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetlinkdetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getlinkdetails.Output of this TapiTopologyGetlinkdetailsOutput. # noqa: E501 + :rtype: TapiTopologyGetlinkdetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def link(self) -> TapiTopologyLink: + """Gets the link of this TapiTopologyGetlinkdetailsOutput. + + + :return: The link of this TapiTopologyGetlinkdetailsOutput. + :rtype: TapiTopologyLink + """ + return self._link + + @link.setter + def link(self, link: TapiTopologyLink): + """Sets the link of this TapiTopologyGetlinkdetailsOutput. + + + :param link: The link of this TapiTopologyGetlinkdetailsOutput. + :type link: TapiTopologyLink + """ + + self._link = link diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..d125b2539b228e1160ddf6c5a1bcf68d97ca6797 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_input.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyGetnodedetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_id_or_name: str=None, topology_id_or_name: str=None): # noqa: E501 + """TapiTopologyGetnodedetailsInput - a model defined in Swagger + + :param node_id_or_name: The node_id_or_name of this TapiTopologyGetnodedetailsInput. # noqa: E501 + :type node_id_or_name: str + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetnodedetailsInput. # noqa: E501 + :type topology_id_or_name: str + """ + self.swagger_types = { + 'node_id_or_name': str, + 'topology_id_or_name': str + } + + self.attribute_map = { + 'node_id_or_name': 'node-id-or-name', + 'topology_id_or_name': 'topology-id-or-name' + } + self._node_id_or_name = node_id_or_name + self._topology_id_or_name = topology_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetnodedetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getnodedetails.Input of this TapiTopologyGetnodedetailsInput. # noqa: E501 + :rtype: TapiTopologyGetnodedetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def node_id_or_name(self) -> str: + """Gets the node_id_or_name of this TapiTopologyGetnodedetailsInput. + + none # noqa: E501 + + :return: The node_id_or_name of this TapiTopologyGetnodedetailsInput. + :rtype: str + """ + return self._node_id_or_name + + @node_id_or_name.setter + def node_id_or_name(self, node_id_or_name: str): + """Sets the node_id_or_name of this TapiTopologyGetnodedetailsInput. + + none # noqa: E501 + + :param node_id_or_name: The node_id_or_name of this TapiTopologyGetnodedetailsInput. + :type node_id_or_name: str + """ + + self._node_id_or_name = node_id_or_name + + @property + def topology_id_or_name(self) -> str: + """Gets the topology_id_or_name of this TapiTopologyGetnodedetailsInput. + + none # noqa: E501 + + :return: The topology_id_or_name of this TapiTopologyGetnodedetailsInput. + :rtype: str + """ + return self._topology_id_or_name + + @topology_id_or_name.setter + def topology_id_or_name(self, topology_id_or_name: str): + """Sets the topology_id_or_name of this TapiTopologyGetnodedetailsInput. + + none # noqa: E501 + + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetnodedetailsInput. + :type topology_id_or_name: str + """ + + self._topology_id_or_name = topology_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..49e0042763a40a064620d869f9e60c1f3e68a92e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodedetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node import TapiTopologyNode # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetnodedetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node: TapiTopologyNode=None): # noqa: E501 + """TapiTopologyGetnodedetailsOutput - a model defined in Swagger + + :param node: The node of this TapiTopologyGetnodedetailsOutput. # noqa: E501 + :type node: TapiTopologyNode + """ + self.swagger_types = { + 'node': TapiTopologyNode + } + + self.attribute_map = { + 'node': 'node' + } + self._node = node + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetnodedetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getnodedetails.Output of this TapiTopologyGetnodedetailsOutput. # noqa: E501 + :rtype: TapiTopologyGetnodedetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def node(self) -> TapiTopologyNode: + """Gets the node of this TapiTopologyGetnodedetailsOutput. + + + :return: The node of this TapiTopologyGetnodedetailsOutput. + :rtype: TapiTopologyNode + """ + return self._node + + @node.setter + def node(self, node: TapiTopologyNode): + """Sets the node of this TapiTopologyGetnodedetailsOutput. + + + :param node: The node of this TapiTopologyGetnodedetailsOutput. + :type node: TapiTopologyNode + """ + + self._node = node diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..dc7f65ad32056fad5c8f6c1e7f6d9be5c2c7f0fc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_input.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyGetnodeedgepointdetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, ep_id_or_name: str=None, node_id_or_name: str=None, topology_id_or_name: str=None): # noqa: E501 + """TapiTopologyGetnodeedgepointdetailsInput - a model defined in Swagger + + :param ep_id_or_name: The ep_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. # noqa: E501 + :type ep_id_or_name: str + :param node_id_or_name: The node_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. # noqa: E501 + :type node_id_or_name: str + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. # noqa: E501 + :type topology_id_or_name: str + """ + self.swagger_types = { + 'ep_id_or_name': str, + 'node_id_or_name': str, + 'topology_id_or_name': str + } + + self.attribute_map = { + 'ep_id_or_name': 'ep-id-or-name', + 'node_id_or_name': 'node-id-or-name', + 'topology_id_or_name': 'topology-id-or-name' + } + self._ep_id_or_name = ep_id_or_name + self._node_id_or_name = node_id_or_name + self._topology_id_or_name = topology_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetnodeedgepointdetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getnodeedgepointdetails.Input of this TapiTopologyGetnodeedgepointdetailsInput. # noqa: E501 + :rtype: TapiTopologyGetnodeedgepointdetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def ep_id_or_name(self) -> str: + """Gets the ep_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :return: The ep_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :rtype: str + """ + return self._ep_id_or_name + + @ep_id_or_name.setter + def ep_id_or_name(self, ep_id_or_name: str): + """Sets the ep_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :param ep_id_or_name: The ep_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :type ep_id_or_name: str + """ + + self._ep_id_or_name = ep_id_or_name + + @property + def node_id_or_name(self) -> str: + """Gets the node_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :return: The node_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :rtype: str + """ + return self._node_id_or_name + + @node_id_or_name.setter + def node_id_or_name(self, node_id_or_name: str): + """Sets the node_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :param node_id_or_name: The node_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :type node_id_or_name: str + """ + + self._node_id_or_name = node_id_or_name + + @property + def topology_id_or_name(self) -> str: + """Gets the topology_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :return: The topology_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :rtype: str + """ + return self._topology_id_or_name + + @topology_id_or_name.setter + def topology_id_or_name(self, topology_id_or_name: str): + """Sets the topology_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + + none # noqa: E501 + + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGetnodeedgepointdetailsInput. + :type topology_id_or_name: str + """ + + self._topology_id_or_name = topology_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..8506c3a6abe447726a8affbb0edd319bb1f80e0d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_getnodeedgepointdetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_edge_point import TapiTopologyNodeEdgePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGetnodeedgepointdetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_edge_point: TapiTopologyNodeEdgePoint=None): # noqa: E501 + """TapiTopologyGetnodeedgepointdetailsOutput - a model defined in Swagger + + :param node_edge_point: The node_edge_point of this TapiTopologyGetnodeedgepointdetailsOutput. # noqa: E501 + :type node_edge_point: TapiTopologyNodeEdgePoint + """ + self.swagger_types = { + 'node_edge_point': TapiTopologyNodeEdgePoint + } + + self.attribute_map = { + 'node_edge_point': 'node-edge-point' + } + self._node_edge_point = node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGetnodeedgepointdetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.getnodeedgepointdetails.Output of this TapiTopologyGetnodeedgepointdetailsOutput. # noqa: E501 + :rtype: TapiTopologyGetnodeedgepointdetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def node_edge_point(self) -> TapiTopologyNodeEdgePoint: + """Gets the node_edge_point of this TapiTopologyGetnodeedgepointdetailsOutput. + + + :return: The node_edge_point of this TapiTopologyGetnodeedgepointdetailsOutput. + :rtype: TapiTopologyNodeEdgePoint + """ + return self._node_edge_point + + @node_edge_point.setter + def node_edge_point(self, node_edge_point: TapiTopologyNodeEdgePoint): + """Sets the node_edge_point of this TapiTopologyGetnodeedgepointdetailsOutput. + + + :param node_edge_point: The node_edge_point of this TapiTopologyGetnodeedgepointdetailsOutput. + :type node_edge_point: TapiTopologyNodeEdgePoint + """ + + self._node_edge_point = node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_input.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_input.py new file mode 100644 index 0000000000000000000000000000000000000000..766155919ed803e8097d01ce1052d85e7c4900c6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_input.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyGettopologydetailsInput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_id_or_name: str=None): # noqa: E501 + """TapiTopologyGettopologydetailsInput - a model defined in Swagger + + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGettopologydetailsInput. # noqa: E501 + :type topology_id_or_name: str + """ + self.swagger_types = { + 'topology_id_or_name': str + } + + self.attribute_map = { + 'topology_id_or_name': 'topology-id-or-name' + } + self._topology_id_or_name = topology_id_or_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGettopologydetailsInput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.gettopologydetails.Input of this TapiTopologyGettopologydetailsInput. # noqa: E501 + :rtype: TapiTopologyGettopologydetailsInput + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_id_or_name(self) -> str: + """Gets the topology_id_or_name of this TapiTopologyGettopologydetailsInput. + + none # noqa: E501 + + :return: The topology_id_or_name of this TapiTopologyGettopologydetailsInput. + :rtype: str + """ + return self._topology_id_or_name + + @topology_id_or_name.setter + def topology_id_or_name(self, topology_id_or_name: str): + """Sets the topology_id_or_name of this TapiTopologyGettopologydetailsInput. + + none # noqa: E501 + + :param topology_id_or_name: The topology_id_or_name of this TapiTopologyGettopologydetailsInput. + :type topology_id_or_name: str + """ + + self._topology_id_or_name = topology_id_or_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_output.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_output.py new file mode 100644 index 0000000000000000000000000000000000000000..5e2186dbedaae0d3c48d22f377d84cc82d7fc614 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologydetails_output.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology import TapiTopologyTopology # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGettopologydetailsOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology: TapiTopologyTopology=None): # noqa: E501 + """TapiTopologyGettopologydetailsOutput - a model defined in Swagger + + :param topology: The topology of this TapiTopologyGettopologydetailsOutput. # noqa: E501 + :type topology: TapiTopologyTopology + """ + self.swagger_types = { + 'topology': TapiTopologyTopology + } + + self.attribute_map = { + 'topology': 'topology' + } + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGettopologydetailsOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.gettopologydetails.Output of this TapiTopologyGettopologydetailsOutput. # noqa: E501 + :rtype: TapiTopologyGettopologydetailsOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def topology(self) -> TapiTopologyTopology: + """Gets the topology of this TapiTopologyGettopologydetailsOutput. + + + :return: The topology of this TapiTopologyGettopologydetailsOutput. + :rtype: TapiTopologyTopology + """ + return self._topology + + @topology.setter + def topology(self, topology: TapiTopologyTopology): + """Sets the topology of this TapiTopologyGettopologydetailsOutput. + + + :param topology: The topology of this TapiTopologyGettopologydetailsOutput. + :type topology: TapiTopologyTopology + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologylist_output.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologylist_output.py new file mode 100644 index 0000000000000000000000000000000000000000..45a88d2770a8ccdd0c9e345795cd0dfb401d6691 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_gettopologylist_output.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology import TapiTopologyTopology # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyGettopologylistOutput(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology: List[TapiTopologyTopology]=None): # noqa: E501 + """TapiTopologyGettopologylistOutput - a model defined in Swagger + + :param topology: The topology of this TapiTopologyGettopologylistOutput. # noqa: E501 + :type topology: List[TapiTopologyTopology] + """ + self.swagger_types = { + 'topology': List[TapiTopologyTopology] + } + + self.attribute_map = { + 'topology': 'topology' + } + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyGettopologylistOutput': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.gettopologylist.Output of this TapiTopologyGettopologylistOutput. # noqa: E501 + :rtype: TapiTopologyGettopologylistOutput + """ + return util.deserialize_model(dikt, cls) + + @property + def topology(self) -> List[TapiTopologyTopology]: + """Gets the topology of this TapiTopologyGettopologylistOutput. + + none # noqa: E501 + + :return: The topology of this TapiTopologyGettopologylistOutput. + :rtype: List[TapiTopologyTopology] + """ + return self._topology + + @topology.setter + def topology(self, topology: List[TapiTopologyTopology]): + """Sets the topology of this TapiTopologyGettopologylistOutput. + + none # noqa: E501 + + :param topology: The topology of this TapiTopologyGettopologylistOutput. + :type topology: List[TapiTopologyTopology] + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group.py new file mode 100644 index 0000000000000000000000000000000000000000..aaf71e657c13304e4bd5a7cc2eb1ce3597030b7d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group.py @@ -0,0 +1,296 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_rule_group_ref import TapiTopologyNodeRuleGroupRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_parameter_pac import TapiTopologyRiskParameterPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_rule import TapiTopologyRule # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyInterRuleGroup(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, risk_characteristic: List[TapiTopologyRiskCharacteristic]=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, associated_node_rule_group: List[TapiTopologyNodeRuleGroupRef]=None, rule: List[TapiTopologyRule]=None): # noqa: E501 + """TapiTopologyInterRuleGroup - a model defined in Swagger + + :param name: The name of this TapiTopologyInterRuleGroup. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyInterRuleGroup. # noqa: E501 + :type uuid: str + :param risk_characteristic: The risk_characteristic of this TapiTopologyInterRuleGroup. # noqa: E501 + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + :param cost_characteristic: The cost_characteristic of this TapiTopologyInterRuleGroup. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param latency_characteristic: The latency_characteristic of this TapiTopologyInterRuleGroup. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param available_capacity: The available_capacity of this TapiTopologyInterRuleGroup. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyInterRuleGroup. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param associated_node_rule_group: The associated_node_rule_group of this TapiTopologyInterRuleGroup. # noqa: E501 + :type associated_node_rule_group: List[TapiTopologyNodeRuleGroupRef] + :param rule: The rule of this TapiTopologyInterRuleGroup. # noqa: E501 + :type rule: List[TapiTopologyRule] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'risk_characteristic': List[TapiTopologyRiskCharacteristic], + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'associated_node_rule_group': List[TapiTopologyNodeRuleGroupRef], + 'rule': List[TapiTopologyRule] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'risk_characteristic': 'risk-characteristic', + 'cost_characteristic': 'cost-characteristic', + 'latency_characteristic': 'latency-characteristic', + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'associated_node_rule_group': 'associated-node-rule-group', + 'rule': 'rule' + } + self._name = name + self._uuid = uuid + self._risk_characteristic = risk_characteristic + self._cost_characteristic = cost_characteristic + self._latency_characteristic = latency_characteristic + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._associated_node_rule_group = associated_node_rule_group + self._rule = rule + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyInterRuleGroup': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.InterRuleGroup of this TapiTopologyInterRuleGroup. # noqa: E501 + :rtype: TapiTopologyInterRuleGroup + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyInterRuleGroup. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyInterRuleGroup. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyInterRuleGroup. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyInterRuleGroup. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyInterRuleGroup. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyInterRuleGroup. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyInterRuleGroup. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyInterRuleGroup. + :type uuid: str + """ + + self._uuid = uuid + + @property + def risk_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_characteristic of this TapiTopologyInterRuleGroup. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :return: The risk_characteristic of this TapiTopologyInterRuleGroup. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_characteristic + + @risk_characteristic.setter + def risk_characteristic(self, risk_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_characteristic of this TapiTopologyInterRuleGroup. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param risk_characteristic: The risk_characteristic of this TapiTopologyInterRuleGroup. + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_characteristic = risk_characteristic + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyInterRuleGroup. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyInterRuleGroup. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyInterRuleGroup. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyInterRuleGroup. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyInterRuleGroup. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyInterRuleGroup. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyInterRuleGroup. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyInterRuleGroup. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyInterRuleGroup. + + + :return: The available_capacity of this TapiTopologyInterRuleGroup. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyInterRuleGroup. + + + :param available_capacity: The available_capacity of this TapiTopologyInterRuleGroup. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyInterRuleGroup. + + + :return: The total_potential_capacity of this TapiTopologyInterRuleGroup. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyInterRuleGroup. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyInterRuleGroup. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def associated_node_rule_group(self) -> List[TapiTopologyNodeRuleGroupRef]: + """Gets the associated_node_rule_group of this TapiTopologyInterRuleGroup. + + The NodeRuleGroups that the InterRuleGroup constrains interconnection between. The CEPs of the NEPs of a referenced NodeRuleGroup can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup constrained by the rules of the InterRuleGroup. # noqa: E501 + + :return: The associated_node_rule_group of this TapiTopologyInterRuleGroup. + :rtype: List[TapiTopologyNodeRuleGroupRef] + """ + return self._associated_node_rule_group + + @associated_node_rule_group.setter + def associated_node_rule_group(self, associated_node_rule_group: List[TapiTopologyNodeRuleGroupRef]): + """Sets the associated_node_rule_group of this TapiTopologyInterRuleGroup. + + The NodeRuleGroups that the InterRuleGroup constrains interconnection between. The CEPs of the NEPs of a referenced NodeRuleGroup can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup constrained by the rules of the InterRuleGroup. # noqa: E501 + + :param associated_node_rule_group: The associated_node_rule_group of this TapiTopologyInterRuleGroup. + :type associated_node_rule_group: List[TapiTopologyNodeRuleGroupRef] + """ + + self._associated_node_rule_group = associated_node_rule_group + + @property + def rule(self) -> List[TapiTopologyRule]: + """Gets the rule of this TapiTopologyInterRuleGroup. + + The list of rules of the InterRuleGroup. # noqa: E501 + + :return: The rule of this TapiTopologyInterRuleGroup. + :rtype: List[TapiTopologyRule] + """ + return self._rule + + @rule.setter + def rule(self, rule: List[TapiTopologyRule]): + """Sets the rule of this TapiTopologyInterRuleGroup. + + The list of rules of the InterRuleGroup. # noqa: E501 + + :param rule: The rule of this TapiTopologyInterRuleGroup. + :type rule: List[TapiTopologyRule] + """ + + self._rule = rule diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..b28c05707efed2d485d496cd9b4c646c4b00c607 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_inter_rule_group_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_inter_rule_group import TapiTopologyInterRuleGroup # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyInterRuleGroupWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, inter_rule_group: TapiTopologyInterRuleGroup=None): # noqa: E501 + """TapiTopologyInterRuleGroupWrapper - a model defined in Swagger + + :param inter_rule_group: The inter_rule_group of this TapiTopologyInterRuleGroupWrapper. # noqa: E501 + :type inter_rule_group: TapiTopologyInterRuleGroup + """ + self.swagger_types = { + 'inter_rule_group': TapiTopologyInterRuleGroup + } + + self.attribute_map = { + 'inter_rule_group': 'inter-rule-group' + } + self._inter_rule_group = inter_rule_group + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyInterRuleGroupWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.InterRuleGroupWrapper of this TapiTopologyInterRuleGroupWrapper. # noqa: E501 + :rtype: TapiTopologyInterRuleGroupWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def inter_rule_group(self) -> TapiTopologyInterRuleGroup: + """Gets the inter_rule_group of this TapiTopologyInterRuleGroupWrapper. + + + :return: The inter_rule_group of this TapiTopologyInterRuleGroupWrapper. + :rtype: TapiTopologyInterRuleGroup + """ + return self._inter_rule_group + + @inter_rule_group.setter + def inter_rule_group(self, inter_rule_group: TapiTopologyInterRuleGroup): + """Sets the inter_rule_group of this TapiTopologyInterRuleGroupWrapper. + + + :param inter_rule_group: The inter_rule_group of this TapiTopologyInterRuleGroupWrapper. + :type inter_rule_group: TapiTopologyInterRuleGroup + """ + + self._inter_rule_group = inter_rule_group diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic.py new file mode 100644 index 0000000000000000000000000000000000000000..014790461ff1fed768ba6518426bdbad8e175f11 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic.py @@ -0,0 +1,176 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyLatencyCharacteristic(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, traffic_property_name: str=None, jitter_characteristic: str=None, fixed_latency_characteristic: str=None, wander_characteristic: str=None, queing_latency_characteristic: str=None): # noqa: E501 + """TapiTopologyLatencyCharacteristic - a model defined in Swagger + + :param traffic_property_name: The traffic_property_name of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :type traffic_property_name: str + :param jitter_characteristic: The jitter_characteristic of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :type jitter_characteristic: str + :param fixed_latency_characteristic: The fixed_latency_characteristic of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :type fixed_latency_characteristic: str + :param wander_characteristic: The wander_characteristic of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :type wander_characteristic: str + :param queing_latency_characteristic: The queing_latency_characteristic of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :type queing_latency_characteristic: str + """ + self.swagger_types = { + 'traffic_property_name': str, + 'jitter_characteristic': str, + 'fixed_latency_characteristic': str, + 'wander_characteristic': str, + 'queing_latency_characteristic': str + } + + self.attribute_map = { + 'traffic_property_name': 'traffic-property-name', + 'jitter_characteristic': 'jitter-characteristic', + 'fixed_latency_characteristic': 'fixed-latency-characteristic', + 'wander_characteristic': 'wander-characteristic', + 'queing_latency_characteristic': 'queing-latency-characteristic' + } + self._traffic_property_name = traffic_property_name + self._jitter_characteristic = jitter_characteristic + self._fixed_latency_characteristic = fixed_latency_characteristic + self._wander_characteristic = wander_characteristic + self._queing_latency_characteristic = queing_latency_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLatencyCharacteristic': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LatencyCharacteristic of this TapiTopologyLatencyCharacteristic. # noqa: E501 + :rtype: TapiTopologyLatencyCharacteristic + """ + return util.deserialize_model(dikt, cls) + + @property + def traffic_property_name(self) -> str: + """Gets the traffic_property_name of this TapiTopologyLatencyCharacteristic. + + The identifier of the specific traffic property to which the queuing latency applies. # noqa: E501 + + :return: The traffic_property_name of this TapiTopologyLatencyCharacteristic. + :rtype: str + """ + return self._traffic_property_name + + @traffic_property_name.setter + def traffic_property_name(self, traffic_property_name: str): + """Sets the traffic_property_name of this TapiTopologyLatencyCharacteristic. + + The identifier of the specific traffic property to which the queuing latency applies. # noqa: E501 + + :param traffic_property_name: The traffic_property_name of this TapiTopologyLatencyCharacteristic. + :type traffic_property_name: str + """ + + self._traffic_property_name = traffic_property_name + + @property + def jitter_characteristic(self) -> str: + """Gets the jitter_characteristic of this TapiTopologyLatencyCharacteristic. + + High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency. Applies to TDM systems (and not packet). # noqa: E501 + + :return: The jitter_characteristic of this TapiTopologyLatencyCharacteristic. + :rtype: str + """ + return self._jitter_characteristic + + @jitter_characteristic.setter + def jitter_characteristic(self, jitter_characteristic: str): + """Sets the jitter_characteristic of this TapiTopologyLatencyCharacteristic. + + High frequency deviation from true periodicity of a signal and therefore a small high rate of change of transfer latency. Applies to TDM systems (and not packet). # noqa: E501 + + :param jitter_characteristic: The jitter_characteristic of this TapiTopologyLatencyCharacteristic. + :type jitter_characteristic: str + """ + + self._jitter_characteristic = jitter_characteristic + + @property + def fixed_latency_characteristic(self) -> str: + """Gets the fixed_latency_characteristic of this TapiTopologyLatencyCharacteristic. + + A TopologicalEntity suffers delay caused by the realization of the servers (e.g. distance related; FEC encoding etc.) along with some client specific processing. This is the total average latency effect of the TopologicalEntity # noqa: E501 + + :return: The fixed_latency_characteristic of this TapiTopologyLatencyCharacteristic. + :rtype: str + """ + return self._fixed_latency_characteristic + + @fixed_latency_characteristic.setter + def fixed_latency_characteristic(self, fixed_latency_characteristic: str): + """Sets the fixed_latency_characteristic of this TapiTopologyLatencyCharacteristic. + + A TopologicalEntity suffers delay caused by the realization of the servers (e.g. distance related; FEC encoding etc.) along with some client specific processing. This is the total average latency effect of the TopologicalEntity # noqa: E501 + + :param fixed_latency_characteristic: The fixed_latency_characteristic of this TapiTopologyLatencyCharacteristic. + :type fixed_latency_characteristic: str + """ + + self._fixed_latency_characteristic = fixed_latency_characteristic + + @property + def wander_characteristic(self) -> str: + """Gets the wander_characteristic of this TapiTopologyLatencyCharacteristic. + + Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency. Applies to TDM systems (and not packet). # noqa: E501 + + :return: The wander_characteristic of this TapiTopologyLatencyCharacteristic. + :rtype: str + """ + return self._wander_characteristic + + @wander_characteristic.setter + def wander_characteristic(self, wander_characteristic: str): + """Sets the wander_characteristic of this TapiTopologyLatencyCharacteristic. + + Low frequency deviation from true periodicity of a signal and therefore a small low rate of change of transfer latency. Applies to TDM systems (and not packet). # noqa: E501 + + :param wander_characteristic: The wander_characteristic of this TapiTopologyLatencyCharacteristic. + :type wander_characteristic: str + """ + + self._wander_characteristic = wander_characteristic + + @property + def queing_latency_characteristic(self) -> str: + """Gets the queing_latency_characteristic of this TapiTopologyLatencyCharacteristic. + + The specific queuing latency for the traffic property. # noqa: E501 + + :return: The queing_latency_characteristic of this TapiTopologyLatencyCharacteristic. + :rtype: str + """ + return self._queing_latency_characteristic + + @queing_latency_characteristic.setter + def queing_latency_characteristic(self, queing_latency_characteristic: str): + """Sets the queing_latency_characteristic of this TapiTopologyLatencyCharacteristic. + + The specific queuing latency for the traffic property. # noqa: E501 + + :param queing_latency_characteristic: The queing_latency_characteristic of this TapiTopologyLatencyCharacteristic. + :type queing_latency_characteristic: str + """ + + self._queing_latency_characteristic = queing_latency_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..faf48fcb4f91fe044c27bde449eb5c78ae3b36ec --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_latency_characteristic_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyLatencyCharacteristicWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, latency_characteristic: TapiTopologyLatencyCharacteristic=None): # noqa: E501 + """TapiTopologyLatencyCharacteristicWrapper - a model defined in Swagger + + :param latency_characteristic: The latency_characteristic of this TapiTopologyLatencyCharacteristicWrapper. # noqa: E501 + :type latency_characteristic: TapiTopologyLatencyCharacteristic + """ + self.swagger_types = { + 'latency_characteristic': TapiTopologyLatencyCharacteristic + } + + self.attribute_map = { + 'latency_characteristic': 'latency-characteristic' + } + self._latency_characteristic = latency_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLatencyCharacteristicWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LatencyCharacteristicWrapper of this TapiTopologyLatencyCharacteristicWrapper. # noqa: E501 + :rtype: TapiTopologyLatencyCharacteristicWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def latency_characteristic(self) -> TapiTopologyLatencyCharacteristic: + """Gets the latency_characteristic of this TapiTopologyLatencyCharacteristicWrapper. + + + :return: The latency_characteristic of this TapiTopologyLatencyCharacteristicWrapper. + :rtype: TapiTopologyLatencyCharacteristic + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: TapiTopologyLatencyCharacteristic): + """Sets the latency_characteristic of this TapiTopologyLatencyCharacteristicWrapper. + + + :param latency_characteristic: The latency_characteristic of this TapiTopologyLatencyCharacteristicWrapper. + :type latency_characteristic: TapiTopologyLatencyCharacteristic + """ + + self._latency_characteristic = latency_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_layer_protocol_transition_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_layer_protocol_transition_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..3b3cda712be5b822740c7deb404ee17c32b6e264 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_layer_protocol_transition_pac.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyLayerProtocolTransitionPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, transitioned_layer_protocol_name: List[str]=None): # noqa: E501 + """TapiTopologyLayerProtocolTransitionPac - a model defined in Swagger + + :param transitioned_layer_protocol_name: The transitioned_layer_protocol_name of this TapiTopologyLayerProtocolTransitionPac. # noqa: E501 + :type transitioned_layer_protocol_name: List[str] + """ + self.swagger_types = { + 'transitioned_layer_protocol_name': List[str] + } + + self.attribute_map = { + 'transitioned_layer_protocol_name': 'transitioned-layer-protocol-name' + } + self._transitioned_layer_protocol_name = transitioned_layer_protocol_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLayerProtocolTransitionPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LayerProtocolTransitionPac of this TapiTopologyLayerProtocolTransitionPac. # noqa: E501 + :rtype: TapiTopologyLayerProtocolTransitionPac + """ + return util.deserialize_model(dikt, cls) + + @property + def transitioned_layer_protocol_name(self) -> List[str]: + """Gets the transitioned_layer_protocol_name of this TapiTopologyLayerProtocolTransitionPac. + + Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role. # noqa: E501 + + :return: The transitioned_layer_protocol_name of this TapiTopologyLayerProtocolTransitionPac. + :rtype: List[str] + """ + return self._transitioned_layer_protocol_name + + @transitioned_layer_protocol_name.setter + def transitioned_layer_protocol_name(self, transitioned_layer_protocol_name: List[str]): + """Sets the transitioned_layer_protocol_name of this TapiTopologyLayerProtocolTransitionPac. + + Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role. # noqa: E501 + + :param transitioned_layer_protocol_name: The transitioned_layer_protocol_name of this TapiTopologyLayerProtocolTransitionPac. + :type transitioned_layer_protocol_name: List[str] + """ + + self._transitioned_layer_protocol_name = transitioned_layer_protocol_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_link.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_link.py new file mode 100644 index 0000000000000000000000000000000000000000..0bf0baf8e189132d6b6a0e76e9f0852acdd02746 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_link.py @@ -0,0 +1,660 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_forwarding_direction import TapiCommonForwardingDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_layer_protocol_transition_pac import TapiTopologyLayerProtocolTransitionPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_parameter_pac import TapiTopologyRiskParameterPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_integrity_pac import TapiTopologyTransferIntegrityPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_validation_mechanism import TapiTopologyValidationMechanism # noqa: F401,E501 +from tapi_server.models.tapi_topology_validation_pac import TapiTopologyValidationPac # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyLink(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, transitioned_layer_protocol_name: List[str]=None, risk_characteristic: List[TapiTopologyRiskCharacteristic]=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, error_characteristic: str=None, unavailable_time_characteristic: str=None, server_integrity_process_characteristic: str=None, delivery_order_characteristic: str=None, repeat_delivery_characteristic: str=None, loss_characteristic: str=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, validation_mechanism: List[TapiTopologyValidationMechanism]=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, layer_protocol_name: List[TapiCommonLayerProtocolName]=None, resilience_type: TapiTopologyResilienceType=None, node_edge_point: List[TapiTopologyNodeEdgePointRef]=None, direction: TapiCommonForwardingDirection=None): # noqa: E501 + """TapiTopologyLink - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiTopologyLink. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyLink. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiTopologyLink. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyLink. # noqa: E501 + :type uuid: str + :param transitioned_layer_protocol_name: The transitioned_layer_protocol_name of this TapiTopologyLink. # noqa: E501 + :type transitioned_layer_protocol_name: List[str] + :param risk_characteristic: The risk_characteristic of this TapiTopologyLink. # noqa: E501 + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + :param cost_characteristic: The cost_characteristic of this TapiTopologyLink. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param error_characteristic: The error_characteristic of this TapiTopologyLink. # noqa: E501 + :type error_characteristic: str + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyLink. # noqa: E501 + :type unavailable_time_characteristic: str + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyLink. # noqa: E501 + :type server_integrity_process_characteristic: str + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyLink. # noqa: E501 + :type delivery_order_characteristic: str + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyLink. # noqa: E501 + :type repeat_delivery_characteristic: str + :param loss_characteristic: The loss_characteristic of this TapiTopologyLink. # noqa: E501 + :type loss_characteristic: str + :param latency_characteristic: The latency_characteristic of this TapiTopologyLink. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param validation_mechanism: The validation_mechanism of this TapiTopologyLink. # noqa: E501 + :type validation_mechanism: List[TapiTopologyValidationMechanism] + :param operational_state: The operational_state of this TapiTopologyLink. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiTopologyLink. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiTopologyLink. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyLink. # noqa: E501 + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + :param resilience_type: The resilience_type of this TapiTopologyLink. # noqa: E501 + :type resilience_type: TapiTopologyResilienceType + :param node_edge_point: The node_edge_point of this TapiTopologyLink. # noqa: E501 + :type node_edge_point: List[TapiTopologyNodeEdgePointRef] + :param direction: The direction of this TapiTopologyLink. # noqa: E501 + :type direction: TapiCommonForwardingDirection + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'transitioned_layer_protocol_name': List[str], + 'risk_characteristic': List[TapiTopologyRiskCharacteristic], + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'error_characteristic': str, + 'unavailable_time_characteristic': str, + 'server_integrity_process_characteristic': str, + 'delivery_order_characteristic': str, + 'repeat_delivery_characteristic': str, + 'loss_characteristic': str, + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'validation_mechanism': List[TapiTopologyValidationMechanism], + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'layer_protocol_name': List[TapiCommonLayerProtocolName], + 'resilience_type': TapiTopologyResilienceType, + 'node_edge_point': List[TapiTopologyNodeEdgePointRef], + 'direction': TapiCommonForwardingDirection + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'transitioned_layer_protocol_name': 'transitioned-layer-protocol-name', + 'risk_characteristic': 'risk-characteristic', + 'cost_characteristic': 'cost-characteristic', + 'error_characteristic': 'error-characteristic', + 'unavailable_time_characteristic': 'unavailable-time-characteristic', + 'server_integrity_process_characteristic': 'server-integrity-process-characteristic', + 'delivery_order_characteristic': 'delivery-order-characteristic', + 'repeat_delivery_characteristic': 'repeat-delivery-characteristic', + 'loss_characteristic': 'loss-characteristic', + 'latency_characteristic': 'latency-characteristic', + 'validation_mechanism': 'validation-mechanism', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'layer_protocol_name': 'layer-protocol-name', + 'resilience_type': 'resilience-type', + 'node_edge_point': 'node-edge-point', + 'direction': 'direction' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._transitioned_layer_protocol_name = transitioned_layer_protocol_name + self._risk_characteristic = risk_characteristic + self._cost_characteristic = cost_characteristic + self._error_characteristic = error_characteristic + self._unavailable_time_characteristic = unavailable_time_characteristic + self._server_integrity_process_characteristic = server_integrity_process_characteristic + self._delivery_order_characteristic = delivery_order_characteristic + self._repeat_delivery_characteristic = repeat_delivery_characteristic + self._loss_characteristic = loss_characteristic + self._latency_characteristic = latency_characteristic + self._validation_mechanism = validation_mechanism + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._layer_protocol_name = layer_protocol_name + self._resilience_type = resilience_type + self._node_edge_point = node_edge_point + self._direction = direction + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLink': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.Link of this TapiTopologyLink. # noqa: E501 + :rtype: TapiTopologyLink + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyLink. + + + :return: The available_capacity of this TapiTopologyLink. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyLink. + + + :param available_capacity: The available_capacity of this TapiTopologyLink. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyLink. + + + :return: The total_potential_capacity of this TapiTopologyLink. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyLink. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyLink. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyLink. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyLink. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyLink. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyLink. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyLink. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyLink. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyLink. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyLink. + :type uuid: str + """ + + self._uuid = uuid + + @property + def transitioned_layer_protocol_name(self) -> List[str]: + """Gets the transitioned_layer_protocol_name of this TapiTopologyLink. + + Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role. # noqa: E501 + + :return: The transitioned_layer_protocol_name of this TapiTopologyLink. + :rtype: List[str] + """ + return self._transitioned_layer_protocol_name + + @transitioned_layer_protocol_name.setter + def transitioned_layer_protocol_name(self, transitioned_layer_protocol_name: List[str]): + """Sets the transitioned_layer_protocol_name of this TapiTopologyLink. + + Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role. # noqa: E501 + + :param transitioned_layer_protocol_name: The transitioned_layer_protocol_name of this TapiTopologyLink. + :type transitioned_layer_protocol_name: List[str] + """ + + self._transitioned_layer_protocol_name = transitioned_layer_protocol_name + + @property + def risk_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_characteristic of this TapiTopologyLink. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :return: The risk_characteristic of this TapiTopologyLink. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_characteristic + + @risk_characteristic.setter + def risk_characteristic(self, risk_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_characteristic of this TapiTopologyLink. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param risk_characteristic: The risk_characteristic of this TapiTopologyLink. + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_characteristic = risk_characteristic + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyLink. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyLink. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyLink. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyLink. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def error_characteristic(self) -> str: + """Gets the error_characteristic of this TapiTopologyLink. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :return: The error_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._error_characteristic + + @error_characteristic.setter + def error_characteristic(self, error_characteristic: str): + """Sets the error_characteristic of this TapiTopologyLink. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :param error_characteristic: The error_characteristic of this TapiTopologyLink. + :type error_characteristic: str + """ + + self._error_characteristic = error_characteristic + + @property + def unavailable_time_characteristic(self) -> str: + """Gets the unavailable_time_characteristic of this TapiTopologyLink. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :return: The unavailable_time_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._unavailable_time_characteristic + + @unavailable_time_characteristic.setter + def unavailable_time_characteristic(self, unavailable_time_characteristic: str): + """Sets the unavailable_time_characteristic of this TapiTopologyLink. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyLink. + :type unavailable_time_characteristic: str + """ + + self._unavailable_time_characteristic = unavailable_time_characteristic + + @property + def server_integrity_process_characteristic(self) -> str: + """Gets the server_integrity_process_characteristic of this TapiTopologyLink. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :return: The server_integrity_process_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._server_integrity_process_characteristic + + @server_integrity_process_characteristic.setter + def server_integrity_process_characteristic(self, server_integrity_process_characteristic: str): + """Sets the server_integrity_process_characteristic of this TapiTopologyLink. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyLink. + :type server_integrity_process_characteristic: str + """ + + self._server_integrity_process_characteristic = server_integrity_process_characteristic + + @property + def delivery_order_characteristic(self) -> str: + """Gets the delivery_order_characteristic of this TapiTopologyLink. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :return: The delivery_order_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._delivery_order_characteristic + + @delivery_order_characteristic.setter + def delivery_order_characteristic(self, delivery_order_characteristic: str): + """Sets the delivery_order_characteristic of this TapiTopologyLink. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyLink. + :type delivery_order_characteristic: str + """ + + self._delivery_order_characteristic = delivery_order_characteristic + + @property + def repeat_delivery_characteristic(self) -> str: + """Gets the repeat_delivery_characteristic of this TapiTopologyLink. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :return: The repeat_delivery_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._repeat_delivery_characteristic + + @repeat_delivery_characteristic.setter + def repeat_delivery_characteristic(self, repeat_delivery_characteristic: str): + """Sets the repeat_delivery_characteristic of this TapiTopologyLink. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyLink. + :type repeat_delivery_characteristic: str + """ + + self._repeat_delivery_characteristic = repeat_delivery_characteristic + + @property + def loss_characteristic(self) -> str: + """Gets the loss_characteristic of this TapiTopologyLink. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :return: The loss_characteristic of this TapiTopologyLink. + :rtype: str + """ + return self._loss_characteristic + + @loss_characteristic.setter + def loss_characteristic(self, loss_characteristic: str): + """Sets the loss_characteristic of this TapiTopologyLink. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :param loss_characteristic: The loss_characteristic of this TapiTopologyLink. + :type loss_characteristic: str + """ + + self._loss_characteristic = loss_characteristic + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyLink. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyLink. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyLink. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyLink. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def validation_mechanism(self) -> List[TapiTopologyValidationMechanism]: + """Gets the validation_mechanism of this TapiTopologyLink. + + Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity. # noqa: E501 + + :return: The validation_mechanism of this TapiTopologyLink. + :rtype: List[TapiTopologyValidationMechanism] + """ + return self._validation_mechanism + + @validation_mechanism.setter + def validation_mechanism(self, validation_mechanism: List[TapiTopologyValidationMechanism]): + """Sets the validation_mechanism of this TapiTopologyLink. + + Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity. # noqa: E501 + + :param validation_mechanism: The validation_mechanism of this TapiTopologyLink. + :type validation_mechanism: List[TapiTopologyValidationMechanism] + """ + + self._validation_mechanism = validation_mechanism + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiTopologyLink. + + + :return: The operational_state of this TapiTopologyLink. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiTopologyLink. + + + :param operational_state: The operational_state of this TapiTopologyLink. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiTopologyLink. + + + :return: The lifecycle_state of this TapiTopologyLink. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiTopologyLink. + + + :param lifecycle_state: The lifecycle_state of this TapiTopologyLink. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiTopologyLink. + + + :return: The administrative_state of this TapiTopologyLink. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiTopologyLink. + + + :param administrative_state: The administrative_state of this TapiTopologyLink. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def layer_protocol_name(self) -> List[TapiCommonLayerProtocolName]: + """Gets the layer_protocol_name of this TapiTopologyLink. + + none # noqa: E501 + + :return: The layer_protocol_name of this TapiTopologyLink. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: List[TapiCommonLayerProtocolName]): + """Sets the layer_protocol_name of this TapiTopologyLink. + + none # noqa: E501 + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyLink. + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def resilience_type(self) -> TapiTopologyResilienceType: + """Gets the resilience_type of this TapiTopologyLink. + + + :return: The resilience_type of this TapiTopologyLink. + :rtype: TapiTopologyResilienceType + """ + return self._resilience_type + + @resilience_type.setter + def resilience_type(self, resilience_type: TapiTopologyResilienceType): + """Sets the resilience_type of this TapiTopologyLink. + + + :param resilience_type: The resilience_type of this TapiTopologyLink. + :type resilience_type: TapiTopologyResilienceType + """ + + self._resilience_type = resilience_type + + @property + def node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the node_edge_point of this TapiTopologyLink. + + none # noqa: E501 + + :return: The node_edge_point of this TapiTopologyLink. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._node_edge_point + + @node_edge_point.setter + def node_edge_point(self, node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the node_edge_point of this TapiTopologyLink. + + none # noqa: E501 + + :param node_edge_point: The node_edge_point of this TapiTopologyLink. + :type node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._node_edge_point = node_edge_point + + @property + def direction(self) -> TapiCommonForwardingDirection: + """Gets the direction of this TapiTopologyLink. + + + :return: The direction of this TapiTopologyLink. + :rtype: TapiCommonForwardingDirection + """ + return self._direction + + @direction.setter + def direction(self, direction: TapiCommonForwardingDirection): + """Sets the direction of this TapiTopologyLink. + + + :param direction: The direction of this TapiTopologyLink. + :type direction: TapiCommonForwardingDirection + """ + + self._direction = direction diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..ed81e9066a240509083b220e1984ff2b85d97b81 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyLinkRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_uuid: str=None, link_uuid: str=None): # noqa: E501 + """TapiTopologyLinkRef - a model defined in Swagger + + :param topology_uuid: The topology_uuid of this TapiTopologyLinkRef. # noqa: E501 + :type topology_uuid: str + :param link_uuid: The link_uuid of this TapiTopologyLinkRef. # noqa: E501 + :type link_uuid: str + """ + self.swagger_types = { + 'topology_uuid': str, + 'link_uuid': str + } + + self.attribute_map = { + 'topology_uuid': 'topology-uuid', + 'link_uuid': 'link-uuid' + } + self._topology_uuid = topology_uuid + self._link_uuid = link_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLinkRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LinkRef of this TapiTopologyLinkRef. # noqa: E501 + :rtype: TapiTopologyLinkRef + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_uuid(self) -> str: + """Gets the topology_uuid of this TapiTopologyLinkRef. + + none # noqa: E501 + + :return: The topology_uuid of this TapiTopologyLinkRef. + :rtype: str + """ + return self._topology_uuid + + @topology_uuid.setter + def topology_uuid(self, topology_uuid: str): + """Sets the topology_uuid of this TapiTopologyLinkRef. + + none # noqa: E501 + + :param topology_uuid: The topology_uuid of this TapiTopologyLinkRef. + :type topology_uuid: str + """ + + self._topology_uuid = topology_uuid + + @property + def link_uuid(self) -> str: + """Gets the link_uuid of this TapiTopologyLinkRef. + + none # noqa: E501 + + :return: The link_uuid of this TapiTopologyLinkRef. + :rtype: str + """ + return self._link_uuid + + @link_uuid.setter + def link_uuid(self, link_uuid: str): + """Sets the link_uuid of this TapiTopologyLinkRef. + + none # noqa: E501 + + :param link_uuid: The link_uuid of this TapiTopologyLinkRef. + :type link_uuid: str + """ + + self._link_uuid = link_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..0b73647c83674ef1cd7b349eb3805583600c77d6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_link_ref import TapiTopologyLinkRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyLinkRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, supported_client_link: TapiTopologyLinkRef=None): # noqa: E501 + """TapiTopologyLinkRefWrapper - a model defined in Swagger + + :param supported_client_link: The supported_client_link of this TapiTopologyLinkRefWrapper. # noqa: E501 + :type supported_client_link: TapiTopologyLinkRef + """ + self.swagger_types = { + 'supported_client_link': TapiTopologyLinkRef + } + + self.attribute_map = { + 'supported_client_link': 'supported-client-link' + } + self._supported_client_link = supported_client_link + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLinkRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LinkRefWrapper of this TapiTopologyLinkRefWrapper. # noqa: E501 + :rtype: TapiTopologyLinkRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def supported_client_link(self) -> TapiTopologyLinkRef: + """Gets the supported_client_link of this TapiTopologyLinkRefWrapper. + + + :return: The supported_client_link of this TapiTopologyLinkRefWrapper. + :rtype: TapiTopologyLinkRef + """ + return self._supported_client_link + + @supported_client_link.setter + def supported_client_link(self, supported_client_link: TapiTopologyLinkRef): + """Sets the supported_client_link of this TapiTopologyLinkRefWrapper. + + + :param supported_client_link: The supported_client_link of this TapiTopologyLinkRefWrapper. + :type supported_client_link: TapiTopologyLinkRef + """ + + self._supported_client_link = supported_client_link diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_link_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..5d58250c466930153cb01f9ef08fea18a5948ac7 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_link_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_link import TapiTopologyLink # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyLinkWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, link: TapiTopologyLink=None): # noqa: E501 + """TapiTopologyLinkWrapper - a model defined in Swagger + + :param link: The link of this TapiTopologyLinkWrapper. # noqa: E501 + :type link: TapiTopologyLink + """ + self.swagger_types = { + 'link': TapiTopologyLink + } + + self.attribute_map = { + 'link': 'link' + } + self._link = link + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyLinkWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.LinkWrapper of this TapiTopologyLinkWrapper. # noqa: E501 + :rtype: TapiTopologyLinkWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def link(self) -> TapiTopologyLink: + """Gets the link of this TapiTopologyLinkWrapper. + + + :return: The link of this TapiTopologyLinkWrapper. + :rtype: TapiTopologyLink + """ + return self._link + + @link.setter + def link(self, link: TapiTopologyLink): + """Sets the link of this TapiTopologyLinkWrapper. + + + :param link: The link of this TapiTopologyLinkWrapper. + :type link: TapiTopologyLink + """ + + self._link = link diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service.py new file mode 100644 index 0000000000000000000000000000000000000000..10efcf4cff885aa9f3b55a9fe8aad87ab2c9579e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service.py @@ -0,0 +1,123 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNetworkTopologyService(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, topology: List[TapiTopologyTopologyRef]=None): # noqa: E501 + """TapiTopologyNetworkTopologyService - a model defined in Swagger + + :param name: The name of this TapiTopologyNetworkTopologyService. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyNetworkTopologyService. # noqa: E501 + :type uuid: str + :param topology: The topology of this TapiTopologyNetworkTopologyService. # noqa: E501 + :type topology: List[TapiTopologyTopologyRef] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'topology': List[TapiTopologyTopologyRef] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'topology': 'topology' + } + self._name = name + self._uuid = uuid + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNetworkTopologyService': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NetworkTopologyService of this TapiTopologyNetworkTopologyService. # noqa: E501 + :rtype: TapiTopologyNetworkTopologyService + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyNetworkTopologyService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyNetworkTopologyService. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyNetworkTopologyService. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyNetworkTopologyService. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyNetworkTopologyService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyNetworkTopologyService. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyNetworkTopologyService. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyNetworkTopologyService. + :type uuid: str + """ + + self._uuid = uuid + + @property + def topology(self) -> List[TapiTopologyTopologyRef]: + """Gets the topology of this TapiTopologyNetworkTopologyService. + + none # noqa: E501 + + :return: The topology of this TapiTopologyNetworkTopologyService. + :rtype: List[TapiTopologyTopologyRef] + """ + return self._topology + + @topology.setter + def topology(self, topology: List[TapiTopologyTopologyRef]): + """Sets the topology of this TapiTopologyNetworkTopologyService. + + none # noqa: E501 + + :param topology: The topology of this TapiTopologyNetworkTopologyService. + :type topology: List[TapiTopologyTopologyRef] + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..94f5e23596501a016982cf55464d33b1bf2ccb90 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_network_topology_service_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_network_topology_service import TapiTopologyNetworkTopologyService # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNetworkTopologyServiceWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, nw_topology_service: TapiTopologyNetworkTopologyService=None): # noqa: E501 + """TapiTopologyNetworkTopologyServiceWrapper - a model defined in Swagger + + :param nw_topology_service: The nw_topology_service of this TapiTopologyNetworkTopologyServiceWrapper. # noqa: E501 + :type nw_topology_service: TapiTopologyNetworkTopologyService + """ + self.swagger_types = { + 'nw_topology_service': TapiTopologyNetworkTopologyService + } + + self.attribute_map = { + 'nw_topology_service': 'nw-topology-service' + } + self._nw_topology_service = nw_topology_service + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNetworkTopologyServiceWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NetworkTopologyServiceWrapper of this TapiTopologyNetworkTopologyServiceWrapper. # noqa: E501 + :rtype: TapiTopologyNetworkTopologyServiceWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def nw_topology_service(self) -> TapiTopologyNetworkTopologyService: + """Gets the nw_topology_service of this TapiTopologyNetworkTopologyServiceWrapper. + + + :return: The nw_topology_service of this TapiTopologyNetworkTopologyServiceWrapper. + :rtype: TapiTopologyNetworkTopologyService + """ + return self._nw_topology_service + + @nw_topology_service.setter + def nw_topology_service(self, nw_topology_service: TapiTopologyNetworkTopologyService): + """Sets the nw_topology_service of this TapiTopologyNetworkTopologyServiceWrapper. + + + :param nw_topology_service: The nw_topology_service of this TapiTopologyNetworkTopologyServiceWrapper. + :type nw_topology_service: TapiTopologyNetworkTopologyService + """ + + self._nw_topology_service = nw_topology_service diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node.py new file mode 100644 index 0000000000000000000000000000000000000000..2a71716d759bcf98749188ccb630be0ad29472d4 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node.py @@ -0,0 +1,602 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point import TapiTopologyNodeEdgePoint # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_rule_group import TapiTopologyNodeRuleGroup # noqa: F401,E501 +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_integrity_pac import TapiTopologyTransferIntegrityPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNode(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, error_characteristic: str=None, unavailable_time_characteristic: str=None, server_integrity_process_characteristic: str=None, delivery_order_characteristic: str=None, repeat_delivery_characteristic: str=None, loss_characteristic: str=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, layer_protocol_name: List[TapiCommonLayerProtocolName]=None, encap_topology: TapiTopologyTopologyRef=None, owned_node_edge_point: List[TapiTopologyNodeEdgePoint]=None, node_rule_group: List[TapiTopologyNodeRuleGroup]=None, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]=None): # noqa: E501 + """TapiTopologyNode - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiTopologyNode. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNode. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiTopologyNode. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyNode. # noqa: E501 + :type uuid: str + :param cost_characteristic: The cost_characteristic of this TapiTopologyNode. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param error_characteristic: The error_characteristic of this TapiTopologyNode. # noqa: E501 + :type error_characteristic: str + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyNode. # noqa: E501 + :type unavailable_time_characteristic: str + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyNode. # noqa: E501 + :type server_integrity_process_characteristic: str + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyNode. # noqa: E501 + :type delivery_order_characteristic: str + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyNode. # noqa: E501 + :type repeat_delivery_characteristic: str + :param loss_characteristic: The loss_characteristic of this TapiTopologyNode. # noqa: E501 + :type loss_characteristic: str + :param latency_characteristic: The latency_characteristic of this TapiTopologyNode. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param operational_state: The operational_state of this TapiTopologyNode. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiTopologyNode. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiTopologyNode. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNode. # noqa: E501 + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + :param encap_topology: The encap_topology of this TapiTopologyNode. # noqa: E501 + :type encap_topology: TapiTopologyTopologyRef + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyNode. # noqa: E501 + :type owned_node_edge_point: List[TapiTopologyNodeEdgePoint] + :param node_rule_group: The node_rule_group of this TapiTopologyNode. # noqa: E501 + :type node_rule_group: List[TapiTopologyNodeRuleGroup] + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNode. # noqa: E501 + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'error_characteristic': str, + 'unavailable_time_characteristic': str, + 'server_integrity_process_characteristic': str, + 'delivery_order_characteristic': str, + 'repeat_delivery_characteristic': str, + 'loss_characteristic': str, + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'layer_protocol_name': List[TapiCommonLayerProtocolName], + 'encap_topology': TapiTopologyTopologyRef, + 'owned_node_edge_point': List[TapiTopologyNodeEdgePoint], + 'node_rule_group': List[TapiTopologyNodeRuleGroup], + 'aggregated_node_edge_point': List[TapiTopologyNodeEdgePointRef] + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'cost_characteristic': 'cost-characteristic', + 'error_characteristic': 'error-characteristic', + 'unavailable_time_characteristic': 'unavailable-time-characteristic', + 'server_integrity_process_characteristic': 'server-integrity-process-characteristic', + 'delivery_order_characteristic': 'delivery-order-characteristic', + 'repeat_delivery_characteristic': 'repeat-delivery-characteristic', + 'loss_characteristic': 'loss-characteristic', + 'latency_characteristic': 'latency-characteristic', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'layer_protocol_name': 'layer-protocol-name', + 'encap_topology': 'encap-topology', + 'owned_node_edge_point': 'owned-node-edge-point', + 'node_rule_group': 'node-rule-group', + 'aggregated_node_edge_point': 'aggregated-node-edge-point' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._cost_characteristic = cost_characteristic + self._error_characteristic = error_characteristic + self._unavailable_time_characteristic = unavailable_time_characteristic + self._server_integrity_process_characteristic = server_integrity_process_characteristic + self._delivery_order_characteristic = delivery_order_characteristic + self._repeat_delivery_characteristic = repeat_delivery_characteristic + self._loss_characteristic = loss_characteristic + self._latency_characteristic = latency_characteristic + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._layer_protocol_name = layer_protocol_name + self._encap_topology = encap_topology + self._owned_node_edge_point = owned_node_edge_point + self._node_rule_group = node_rule_group + self._aggregated_node_edge_point = aggregated_node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNode': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.Node of this TapiTopologyNode. # noqa: E501 + :rtype: TapiTopologyNode + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyNode. + + + :return: The available_capacity of this TapiTopologyNode. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyNode. + + + :param available_capacity: The available_capacity of this TapiTopologyNode. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyNode. + + + :return: The total_potential_capacity of this TapiTopologyNode. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyNode. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNode. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyNode. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyNode. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyNode. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyNode. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyNode. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyNode. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyNode. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyNode. + :type uuid: str + """ + + self._uuid = uuid + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyNode. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyNode. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyNode. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyNode. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def error_characteristic(self) -> str: + """Gets the error_characteristic of this TapiTopologyNode. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :return: The error_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._error_characteristic + + @error_characteristic.setter + def error_characteristic(self, error_characteristic: str): + """Sets the error_characteristic of this TapiTopologyNode. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :param error_characteristic: The error_characteristic of this TapiTopologyNode. + :type error_characteristic: str + """ + + self._error_characteristic = error_characteristic + + @property + def unavailable_time_characteristic(self) -> str: + """Gets the unavailable_time_characteristic of this TapiTopologyNode. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :return: The unavailable_time_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._unavailable_time_characteristic + + @unavailable_time_characteristic.setter + def unavailable_time_characteristic(self, unavailable_time_characteristic: str): + """Sets the unavailable_time_characteristic of this TapiTopologyNode. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyNode. + :type unavailable_time_characteristic: str + """ + + self._unavailable_time_characteristic = unavailable_time_characteristic + + @property + def server_integrity_process_characteristic(self) -> str: + """Gets the server_integrity_process_characteristic of this TapiTopologyNode. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :return: The server_integrity_process_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._server_integrity_process_characteristic + + @server_integrity_process_characteristic.setter + def server_integrity_process_characteristic(self, server_integrity_process_characteristic: str): + """Sets the server_integrity_process_characteristic of this TapiTopologyNode. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyNode. + :type server_integrity_process_characteristic: str + """ + + self._server_integrity_process_characteristic = server_integrity_process_characteristic + + @property + def delivery_order_characteristic(self) -> str: + """Gets the delivery_order_characteristic of this TapiTopologyNode. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :return: The delivery_order_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._delivery_order_characteristic + + @delivery_order_characteristic.setter + def delivery_order_characteristic(self, delivery_order_characteristic: str): + """Sets the delivery_order_characteristic of this TapiTopologyNode. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyNode. + :type delivery_order_characteristic: str + """ + + self._delivery_order_characteristic = delivery_order_characteristic + + @property + def repeat_delivery_characteristic(self) -> str: + """Gets the repeat_delivery_characteristic of this TapiTopologyNode. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :return: The repeat_delivery_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._repeat_delivery_characteristic + + @repeat_delivery_characteristic.setter + def repeat_delivery_characteristic(self, repeat_delivery_characteristic: str): + """Sets the repeat_delivery_characteristic of this TapiTopologyNode. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyNode. + :type repeat_delivery_characteristic: str + """ + + self._repeat_delivery_characteristic = repeat_delivery_characteristic + + @property + def loss_characteristic(self) -> str: + """Gets the loss_characteristic of this TapiTopologyNode. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :return: The loss_characteristic of this TapiTopologyNode. + :rtype: str + """ + return self._loss_characteristic + + @loss_characteristic.setter + def loss_characteristic(self, loss_characteristic: str): + """Sets the loss_characteristic of this TapiTopologyNode. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :param loss_characteristic: The loss_characteristic of this TapiTopologyNode. + :type loss_characteristic: str + """ + + self._loss_characteristic = loss_characteristic + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyNode. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyNode. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyNode. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyNode. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiTopologyNode. + + + :return: The operational_state of this TapiTopologyNode. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiTopologyNode. + + + :param operational_state: The operational_state of this TapiTopologyNode. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiTopologyNode. + + + :return: The lifecycle_state of this TapiTopologyNode. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiTopologyNode. + + + :param lifecycle_state: The lifecycle_state of this TapiTopologyNode. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiTopologyNode. + + + :return: The administrative_state of this TapiTopologyNode. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiTopologyNode. + + + :param administrative_state: The administrative_state of this TapiTopologyNode. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def layer_protocol_name(self) -> List[TapiCommonLayerProtocolName]: + """Gets the layer_protocol_name of this TapiTopologyNode. + + none # noqa: E501 + + :return: The layer_protocol_name of this TapiTopologyNode. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: List[TapiCommonLayerProtocolName]): + """Sets the layer_protocol_name of this TapiTopologyNode. + + none # noqa: E501 + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNode. + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def encap_topology(self) -> TapiTopologyTopologyRef: + """Gets the encap_topology of this TapiTopologyNode. + + + :return: The encap_topology of this TapiTopologyNode. + :rtype: TapiTopologyTopologyRef + """ + return self._encap_topology + + @encap_topology.setter + def encap_topology(self, encap_topology: TapiTopologyTopologyRef): + """Sets the encap_topology of this TapiTopologyNode. + + + :param encap_topology: The encap_topology of this TapiTopologyNode. + :type encap_topology: TapiTopologyTopologyRef + """ + + self._encap_topology = encap_topology + + @property + def owned_node_edge_point(self) -> List[TapiTopologyNodeEdgePoint]: + """Gets the owned_node_edge_point of this TapiTopologyNode. + + none # noqa: E501 + + :return: The owned_node_edge_point of this TapiTopologyNode. + :rtype: List[TapiTopologyNodeEdgePoint] + """ + return self._owned_node_edge_point + + @owned_node_edge_point.setter + def owned_node_edge_point(self, owned_node_edge_point: List[TapiTopologyNodeEdgePoint]): + """Sets the owned_node_edge_point of this TapiTopologyNode. + + none # noqa: E501 + + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyNode. + :type owned_node_edge_point: List[TapiTopologyNodeEdgePoint] + """ + + self._owned_node_edge_point = owned_node_edge_point + + @property + def node_rule_group(self) -> List[TapiTopologyNodeRuleGroup]: + """Gets the node_rule_group of this TapiTopologyNode. + + none # noqa: E501 + + :return: The node_rule_group of this TapiTopologyNode. + :rtype: List[TapiTopologyNodeRuleGroup] + """ + return self._node_rule_group + + @node_rule_group.setter + def node_rule_group(self, node_rule_group: List[TapiTopologyNodeRuleGroup]): + """Sets the node_rule_group of this TapiTopologyNode. + + none # noqa: E501 + + :param node_rule_group: The node_rule_group of this TapiTopologyNode. + :type node_rule_group: List[TapiTopologyNodeRuleGroup] + """ + + self._node_rule_group = node_rule_group + + @property + def aggregated_node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the aggregated_node_edge_point of this TapiTopologyNode. + + none # noqa: E501 + + :return: The aggregated_node_edge_point of this TapiTopologyNode. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._aggregated_node_edge_point + + @aggregated_node_edge_point.setter + def aggregated_node_edge_point(self, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the aggregated_node_edge_point of this TapiTopologyNode. + + none # noqa: E501 + + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNode. + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._aggregated_node_edge_point = aggregated_node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point.py new file mode 100644 index 0000000000000000000000000000000000000000..7e87f23fb2e57a164b4c597d6892cf98fcb91819 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point.py @@ -0,0 +1,452 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole # noqa: F401,E501 +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_pac import TapiCommonTerminationPac # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_state import TapiCommonTerminationState # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeEdgePoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, termination_direction: TapiCommonTerminationDirection=None, termination_state: TapiCommonTerminationState=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, link_port_role: TapiCommonPortRole=None, mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef]=None, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]=None, layer_protocol_name: TapiCommonLayerProtocolName=None, link_port_direction: TapiCommonPortDirection=None, supported_cep_layer_protocol_qualifier: List[str]=None): # noqa: E501 + """TapiTopologyNodeEdgePoint - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type uuid: str + :param termination_direction: The termination_direction of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type termination_direction: TapiCommonTerminationDirection + :param termination_state: The termination_state of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type termination_state: TapiCommonTerminationState + :param operational_state: The operational_state of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param link_port_role: The link_port_role of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type link_port_role: TapiCommonPortRole + :param mapped_service_interface_point: The mapped_service_interface_point of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef] + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param link_port_direction: The link_port_direction of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type link_port_direction: TapiCommonPortDirection + :param supported_cep_layer_protocol_qualifier: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeEdgePoint. # noqa: E501 + :type supported_cep_layer_protocol_qualifier: List[str] + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'termination_direction': TapiCommonTerminationDirection, + 'termination_state': TapiCommonTerminationState, + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'link_port_role': TapiCommonPortRole, + 'mapped_service_interface_point': List[TapiCommonServiceInterfacePointRef], + 'aggregated_node_edge_point': List[TapiTopologyNodeEdgePointRef], + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'link_port_direction': TapiCommonPortDirection, + 'supported_cep_layer_protocol_qualifier': List[str] + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'termination_direction': 'termination-direction', + 'termination_state': 'termination-state', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'link_port_role': 'link-port-role', + 'mapped_service_interface_point': 'mapped-service-interface-point', + 'aggregated_node_edge_point': 'aggregated-node-edge-point', + 'layer_protocol_name': 'layer-protocol-name', + 'link_port_direction': 'link-port-direction', + 'supported_cep_layer_protocol_qualifier': 'supported-cep-layer-protocol-qualifier' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._termination_direction = termination_direction + self._termination_state = termination_state + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._link_port_role = link_port_role + self._mapped_service_interface_point = mapped_service_interface_point + self._aggregated_node_edge_point = aggregated_node_edge_point + self._layer_protocol_name = layer_protocol_name + self._link_port_direction = link_port_direction + self._supported_cep_layer_protocol_qualifier = supported_cep_layer_protocol_qualifier + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeEdgePoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeEdgePoint of this TapiTopologyNodeEdgePoint. # noqa: E501 + :rtype: TapiTopologyNodeEdgePoint + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyNodeEdgePoint. + + + :return: The available_capacity of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyNodeEdgePoint. + + + :param available_capacity: The available_capacity of this TapiTopologyNodeEdgePoint. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyNodeEdgePoint. + + + :return: The total_potential_capacity of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyNodeEdgePoint. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeEdgePoint. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyNodeEdgePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyNodeEdgePoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyNodeEdgePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyNodeEdgePoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyNodeEdgePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyNodeEdgePoint. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyNodeEdgePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyNodeEdgePoint. + :type uuid: str + """ + + self._uuid = uuid + + @property + def termination_direction(self) -> TapiCommonTerminationDirection: + """Gets the termination_direction of this TapiTopologyNodeEdgePoint. + + + :return: The termination_direction of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonTerminationDirection + """ + return self._termination_direction + + @termination_direction.setter + def termination_direction(self, termination_direction: TapiCommonTerminationDirection): + """Sets the termination_direction of this TapiTopologyNodeEdgePoint. + + + :param termination_direction: The termination_direction of this TapiTopologyNodeEdgePoint. + :type termination_direction: TapiCommonTerminationDirection + """ + + self._termination_direction = termination_direction + + @property + def termination_state(self) -> TapiCommonTerminationState: + """Gets the termination_state of this TapiTopologyNodeEdgePoint. + + + :return: The termination_state of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonTerminationState + """ + return self._termination_state + + @termination_state.setter + def termination_state(self, termination_state: TapiCommonTerminationState): + """Sets the termination_state of this TapiTopologyNodeEdgePoint. + + + :param termination_state: The termination_state of this TapiTopologyNodeEdgePoint. + :type termination_state: TapiCommonTerminationState + """ + + self._termination_state = termination_state + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiTopologyNodeEdgePoint. + + + :return: The operational_state of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiTopologyNodeEdgePoint. + + + :param operational_state: The operational_state of this TapiTopologyNodeEdgePoint. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiTopologyNodeEdgePoint. + + + :return: The lifecycle_state of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiTopologyNodeEdgePoint. + + + :param lifecycle_state: The lifecycle_state of this TapiTopologyNodeEdgePoint. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiTopologyNodeEdgePoint. + + + :return: The administrative_state of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiTopologyNodeEdgePoint. + + + :param administrative_state: The administrative_state of this TapiTopologyNodeEdgePoint. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def link_port_role(self) -> TapiCommonPortRole: + """Gets the link_port_role of this TapiTopologyNodeEdgePoint. + + + :return: The link_port_role of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonPortRole + """ + return self._link_port_role + + @link_port_role.setter + def link_port_role(self, link_port_role: TapiCommonPortRole): + """Sets the link_port_role of this TapiTopologyNodeEdgePoint. + + + :param link_port_role: The link_port_role of this TapiTopologyNodeEdgePoint. + :type link_port_role: TapiCommonPortRole + """ + + self._link_port_role = link_port_role + + @property + def mapped_service_interface_point(self) -> List[TapiCommonServiceInterfacePointRef]: + """Gets the mapped_service_interface_point of this TapiTopologyNodeEdgePoint. + + NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental # noqa: E501 + + :return: The mapped_service_interface_point of this TapiTopologyNodeEdgePoint. + :rtype: List[TapiCommonServiceInterfacePointRef] + """ + return self._mapped_service_interface_point + + @mapped_service_interface_point.setter + def mapped_service_interface_point(self, mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef]): + """Sets the mapped_service_interface_point of this TapiTopologyNodeEdgePoint. + + NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental # noqa: E501 + + :param mapped_service_interface_point: The mapped_service_interface_point of this TapiTopologyNodeEdgePoint. + :type mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef] + """ + + self._mapped_service_interface_point = mapped_service_interface_point + + @property + def aggregated_node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the aggregated_node_edge_point of this TapiTopologyNodeEdgePoint. + + none # noqa: E501 + + :return: The aggregated_node_edge_point of this TapiTopologyNodeEdgePoint. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._aggregated_node_edge_point + + @aggregated_node_edge_point.setter + def aggregated_node_edge_point(self, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the aggregated_node_edge_point of this TapiTopologyNodeEdgePoint. + + none # noqa: E501 + + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNodeEdgePoint. + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._aggregated_node_edge_point = aggregated_node_edge_point + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiTopologyNodeEdgePoint. + + + :return: The layer_protocol_name of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiTopologyNodeEdgePoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNodeEdgePoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def link_port_direction(self) -> TapiCommonPortDirection: + """Gets the link_port_direction of this TapiTopologyNodeEdgePoint. + + + :return: The link_port_direction of this TapiTopologyNodeEdgePoint. + :rtype: TapiCommonPortDirection + """ + return self._link_port_direction + + @link_port_direction.setter + def link_port_direction(self, link_port_direction: TapiCommonPortDirection): + """Sets the link_port_direction of this TapiTopologyNodeEdgePoint. + + + :param link_port_direction: The link_port_direction of this TapiTopologyNodeEdgePoint. + :type link_port_direction: TapiCommonPortDirection + """ + + self._link_port_direction = link_port_direction + + @property + def supported_cep_layer_protocol_qualifier(self) -> List[str]: + """Gets the supported_cep_layer_protocol_qualifier of this TapiTopologyNodeEdgePoint. + + none # noqa: E501 + + :return: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeEdgePoint. + :rtype: List[str] + """ + return self._supported_cep_layer_protocol_qualifier + + @supported_cep_layer_protocol_qualifier.setter + def supported_cep_layer_protocol_qualifier(self, supported_cep_layer_protocol_qualifier: List[str]): + """Sets the supported_cep_layer_protocol_qualifier of this TapiTopologyNodeEdgePoint. + + none # noqa: E501 + + :param supported_cep_layer_protocol_qualifier: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeEdgePoint. + :type supported_cep_layer_protocol_qualifier: List[str] + """ + + self._supported_cep_layer_protocol_qualifier = supported_cep_layer_protocol_qualifier diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..5780fe383116f0b8c377e2a92b7e54013dd07273 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_ref import TapiTopologyNodeRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeEdgePointRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_uuid: str=None, node_edge_point_uuid: str=None): # noqa: E501 + """TapiTopologyNodeEdgePointRef - a model defined in Swagger + + :param node_uuid: The node_uuid of this TapiTopologyNodeEdgePointRef. # noqa: E501 + :type node_uuid: str + :param node_edge_point_uuid: The node_edge_point_uuid of this TapiTopologyNodeEdgePointRef. # noqa: E501 + :type node_edge_point_uuid: str + """ + self.swagger_types = { + 'node_uuid': str, + 'node_edge_point_uuid': str + } + + self.attribute_map = { + 'node_uuid': 'node-uuid', + 'node_edge_point_uuid': 'node-edge-point-uuid' + } + self._node_uuid = node_uuid + self._node_edge_point_uuid = node_edge_point_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeEdgePointRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeEdgePointRef of this TapiTopologyNodeEdgePointRef. # noqa: E501 + :rtype: TapiTopologyNodeEdgePointRef + """ + return util.deserialize_model(dikt, cls) + + @property + def node_uuid(self) -> str: + """Gets the node_uuid of this TapiTopologyNodeEdgePointRef. + + none # noqa: E501 + + :return: The node_uuid of this TapiTopologyNodeEdgePointRef. + :rtype: str + """ + return self._node_uuid + + @node_uuid.setter + def node_uuid(self, node_uuid: str): + """Sets the node_uuid of this TapiTopologyNodeEdgePointRef. + + none # noqa: E501 + + :param node_uuid: The node_uuid of this TapiTopologyNodeEdgePointRef. + :type node_uuid: str + """ + + self._node_uuid = node_uuid + + @property + def node_edge_point_uuid(self) -> str: + """Gets the node_edge_point_uuid of this TapiTopologyNodeEdgePointRef. + + none # noqa: E501 + + :return: The node_edge_point_uuid of this TapiTopologyNodeEdgePointRef. + :rtype: str + """ + return self._node_edge_point_uuid + + @node_edge_point_uuid.setter + def node_edge_point_uuid(self, node_edge_point_uuid: str): + """Sets the node_edge_point_uuid of this TapiTopologyNodeEdgePointRef. + + none # noqa: E501 + + :param node_edge_point_uuid: The node_edge_point_uuid of this TapiTopologyNodeEdgePointRef. + :type node_edge_point_uuid: str + """ + + self._node_edge_point_uuid = node_edge_point_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..750dd69251bf55f4b1f839b141293d37fcb84ba8 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_edge_point_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeEdgePointRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_edge_point: TapiTopologyNodeEdgePointRef=None): # noqa: E501 + """TapiTopologyNodeEdgePointRefWrapper - a model defined in Swagger + + :param node_edge_point: The node_edge_point of this TapiTopologyNodeEdgePointRefWrapper. # noqa: E501 + :type node_edge_point: TapiTopologyNodeEdgePointRef + """ + self.swagger_types = { + 'node_edge_point': TapiTopologyNodeEdgePointRef + } + + self.attribute_map = { + 'node_edge_point': 'node-edge-point' + } + self._node_edge_point = node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeEdgePointRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeEdgePointRefWrapper of this TapiTopologyNodeEdgePointRefWrapper. # noqa: E501 + :rtype: TapiTopologyNodeEdgePointRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def node_edge_point(self) -> TapiTopologyNodeEdgePointRef: + """Gets the node_edge_point of this TapiTopologyNodeEdgePointRefWrapper. + + + :return: The node_edge_point of this TapiTopologyNodeEdgePointRefWrapper. + :rtype: TapiTopologyNodeEdgePointRef + """ + return self._node_edge_point + + @node_edge_point.setter + def node_edge_point(self, node_edge_point: TapiTopologyNodeEdgePointRef): + """Sets the node_edge_point of this TapiTopologyNodeEdgePointRefWrapper. + + + :param node_edge_point: The node_edge_point of this TapiTopologyNodeEdgePointRefWrapper. + :type node_edge_point: TapiTopologyNodeEdgePointRef + """ + + self._node_edge_point = node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point.py new file mode 100644 index 0000000000000000000000000000000000000000..ca6356844176a105e7b6d970680a78a21d307772 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point.py @@ -0,0 +1,396 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_port_role import TapiCommonPortRole # noqa: F401,E501 +from tapi_server.models.tapi_common_service_interface_point_ref import TapiCommonServiceInterfacePointRef # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection # noqa: F401,E501 +from tapi_server.models.tapi_common_termination_state import TapiCommonTerminationState # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_cep_list import TapiConnectivityCepList # noqa: F401,E501 +from tapi_server.models.tapi_connectivity_owned_node_edge_point_augmentation1 import TapiConnectivityOwnedNodeEdgePointAugmentation1 # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point import TapiTopologyNodeEdgePoint # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeOwnedNodeEdgePoint(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, termination_direction: TapiCommonTerminationDirection=None, termination_state: TapiCommonTerminationState=None, link_port_role: TapiCommonPortRole=None, mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef]=None, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]=None, layer_protocol_name: TapiCommonLayerProtocolName=None, link_port_direction: TapiCommonPortDirection=None, supported_cep_layer_protocol_qualifier: List[str]=None, cep_list: TapiConnectivityCepList=None): # noqa: E501 + """TapiTopologyNodeOwnedNodeEdgePoint - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type uuid: str + :param termination_direction: The termination_direction of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type termination_direction: TapiCommonTerminationDirection + :param termination_state: The termination_state of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type termination_state: TapiCommonTerminationState + :param link_port_role: The link_port_role of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type link_port_role: TapiCommonPortRole + :param mapped_service_interface_point: The mapped_service_interface_point of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef] + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type layer_protocol_name: TapiCommonLayerProtocolName + :param link_port_direction: The link_port_direction of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type link_port_direction: TapiCommonPortDirection + :param supported_cep_layer_protocol_qualifier: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type supported_cep_layer_protocol_qualifier: List[str] + :param cep_list: The cep_list of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :type cep_list: TapiConnectivityCepList + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'termination_direction': TapiCommonTerminationDirection, + 'termination_state': TapiCommonTerminationState, + 'link_port_role': TapiCommonPortRole, + 'mapped_service_interface_point': List[TapiCommonServiceInterfacePointRef], + 'aggregated_node_edge_point': List[TapiTopologyNodeEdgePointRef], + 'layer_protocol_name': TapiCommonLayerProtocolName, + 'link_port_direction': TapiCommonPortDirection, + 'supported_cep_layer_protocol_qualifier': List[str], + 'cep_list': TapiConnectivityCepList + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'termination_direction': 'termination-direction', + 'termination_state': 'termination-state', + 'link_port_role': 'link-port-role', + 'mapped_service_interface_point': 'mapped-service-interface-point', + 'aggregated_node_edge_point': 'aggregated-node-edge-point', + 'layer_protocol_name': 'layer-protocol-name', + 'link_port_direction': 'link-port-direction', + 'supported_cep_layer_protocol_qualifier': 'supported-cep-layer-protocol-qualifier', + 'cep_list': 'cep-list' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._termination_direction = termination_direction + self._termination_state = termination_state + self._link_port_role = link_port_role + self._mapped_service_interface_point = mapped_service_interface_point + self._aggregated_node_edge_point = aggregated_node_edge_point + self._layer_protocol_name = layer_protocol_name + self._link_port_direction = link_port_direction + self._supported_cep_layer_protocol_qualifier = supported_cep_layer_protocol_qualifier + self._cep_list = cep_list + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeOwnedNodeEdgePoint': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.node.OwnedNodeEdgePoint of this TapiTopologyNodeOwnedNodeEdgePoint. # noqa: E501 + :rtype: TapiTopologyNodeOwnedNodeEdgePoint + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The available_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param available_capacity: The available_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The total_potential_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeOwnedNodeEdgePoint. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyNodeOwnedNodeEdgePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyNodeOwnedNodeEdgePoint. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyNodeOwnedNodeEdgePoint. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyNodeOwnedNodeEdgePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyNodeOwnedNodeEdgePoint. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyNodeOwnedNodeEdgePoint. + :type uuid: str + """ + + self._uuid = uuid + + @property + def termination_direction(self) -> TapiCommonTerminationDirection: + """Gets the termination_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The termination_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonTerminationDirection + """ + return self._termination_direction + + @termination_direction.setter + def termination_direction(self, termination_direction: TapiCommonTerminationDirection): + """Sets the termination_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param termination_direction: The termination_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + :type termination_direction: TapiCommonTerminationDirection + """ + + self._termination_direction = termination_direction + + @property + def termination_state(self) -> TapiCommonTerminationState: + """Gets the termination_state of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The termination_state of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonTerminationState + """ + return self._termination_state + + @termination_state.setter + def termination_state(self, termination_state: TapiCommonTerminationState): + """Sets the termination_state of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param termination_state: The termination_state of this TapiTopologyNodeOwnedNodeEdgePoint. + :type termination_state: TapiCommonTerminationState + """ + + self._termination_state = termination_state + + @property + def link_port_role(self) -> TapiCommonPortRole: + """Gets the link_port_role of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The link_port_role of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonPortRole + """ + return self._link_port_role + + @link_port_role.setter + def link_port_role(self, link_port_role: TapiCommonPortRole): + """Sets the link_port_role of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param link_port_role: The link_port_role of this TapiTopologyNodeOwnedNodeEdgePoint. + :type link_port_role: TapiCommonPortRole + """ + + self._link_port_role = link_port_role + + @property + def mapped_service_interface_point(self) -> List[TapiCommonServiceInterfacePointRef]: + """Gets the mapped_service_interface_point of this TapiTopologyNodeOwnedNodeEdgePoint. + + NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental # noqa: E501 + + :return: The mapped_service_interface_point of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: List[TapiCommonServiceInterfacePointRef] + """ + return self._mapped_service_interface_point + + @mapped_service_interface_point.setter + def mapped_service_interface_point(self, mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef]): + """Sets the mapped_service_interface_point of this TapiTopologyNodeOwnedNodeEdgePoint. + + NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) should be considered experimental # noqa: E501 + + :param mapped_service_interface_point: The mapped_service_interface_point of this TapiTopologyNodeOwnedNodeEdgePoint. + :type mapped_service_interface_point: List[TapiCommonServiceInterfacePointRef] + """ + + self._mapped_service_interface_point = mapped_service_interface_point + + @property + def aggregated_node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the aggregated_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePoint. + + none # noqa: E501 + + :return: The aggregated_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._aggregated_node_edge_point + + @aggregated_node_edge_point.setter + def aggregated_node_edge_point(self, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the aggregated_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePoint. + + none # noqa: E501 + + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePoint. + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._aggregated_node_edge_point = aggregated_node_edge_point + + @property + def layer_protocol_name(self) -> TapiCommonLayerProtocolName: + """Gets the layer_protocol_name of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The layer_protocol_name of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonLayerProtocolName + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: TapiCommonLayerProtocolName): + """Sets the layer_protocol_name of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyNodeOwnedNodeEdgePoint. + :type layer_protocol_name: TapiCommonLayerProtocolName + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def link_port_direction(self) -> TapiCommonPortDirection: + """Gets the link_port_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The link_port_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiCommonPortDirection + """ + return self._link_port_direction + + @link_port_direction.setter + def link_port_direction(self, link_port_direction: TapiCommonPortDirection): + """Sets the link_port_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param link_port_direction: The link_port_direction of this TapiTopologyNodeOwnedNodeEdgePoint. + :type link_port_direction: TapiCommonPortDirection + """ + + self._link_port_direction = link_port_direction + + @property + def supported_cep_layer_protocol_qualifier(self) -> List[str]: + """Gets the supported_cep_layer_protocol_qualifier of this TapiTopologyNodeOwnedNodeEdgePoint. + + none # noqa: E501 + + :return: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: List[str] + """ + return self._supported_cep_layer_protocol_qualifier + + @supported_cep_layer_protocol_qualifier.setter + def supported_cep_layer_protocol_qualifier(self, supported_cep_layer_protocol_qualifier: List[str]): + """Sets the supported_cep_layer_protocol_qualifier of this TapiTopologyNodeOwnedNodeEdgePoint. + + none # noqa: E501 + + :param supported_cep_layer_protocol_qualifier: The supported_cep_layer_protocol_qualifier of this TapiTopologyNodeOwnedNodeEdgePoint. + :type supported_cep_layer_protocol_qualifier: List[str] + """ + + self._supported_cep_layer_protocol_qualifier = supported_cep_layer_protocol_qualifier + + @property + def cep_list(self) -> TapiConnectivityCepList: + """Gets the cep_list of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :return: The cep_list of this TapiTopologyNodeOwnedNodeEdgePoint. + :rtype: TapiConnectivityCepList + """ + return self._cep_list + + @cep_list.setter + def cep_list(self, cep_list: TapiConnectivityCepList): + """Sets the cep_list of this TapiTopologyNodeOwnedNodeEdgePoint. + + + :param cep_list: The cep_list of this TapiTopologyNodeOwnedNodeEdgePoint. + :type cep_list: TapiConnectivityCepList + """ + + self._cep_list = cep_list diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..625b248341e9a782de2da647ba2cc5c870346971 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_owned_node_edge_point_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_owned_node_edge_point import TapiTopologyNodeOwnedNodeEdgePoint # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeOwnedNodeEdgePointWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, owned_node_edge_point: TapiTopologyNodeOwnedNodeEdgePoint=None): # noqa: E501 + """TapiTopologyNodeOwnedNodeEdgePointWrapper - a model defined in Swagger + + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePointWrapper. # noqa: E501 + :type owned_node_edge_point: TapiTopologyNodeOwnedNodeEdgePoint + """ + self.swagger_types = { + 'owned_node_edge_point': TapiTopologyNodeOwnedNodeEdgePoint + } + + self.attribute_map = { + 'owned_node_edge_point': 'owned-node-edge-point' + } + self._owned_node_edge_point = owned_node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeOwnedNodeEdgePointWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.node.OwnedNodeEdgePointWrapper of this TapiTopologyNodeOwnedNodeEdgePointWrapper. # noqa: E501 + :rtype: TapiTopologyNodeOwnedNodeEdgePointWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def owned_node_edge_point(self) -> TapiTopologyNodeOwnedNodeEdgePoint: + """Gets the owned_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePointWrapper. + + + :return: The owned_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePointWrapper. + :rtype: TapiTopologyNodeOwnedNodeEdgePoint + """ + return self._owned_node_edge_point + + @owned_node_edge_point.setter + def owned_node_edge_point(self, owned_node_edge_point: TapiTopologyNodeOwnedNodeEdgePoint): + """Sets the owned_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePointWrapper. + + + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyNodeOwnedNodeEdgePointWrapper. + :type owned_node_edge_point: TapiTopologyNodeOwnedNodeEdgePoint + """ + + self._owned_node_edge_point = owned_node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..28ada09fba172a38d556cdc208e73e55d3df2c3c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_uuid: str=None, node_uuid: str=None): # noqa: E501 + """TapiTopologyNodeRef - a model defined in Swagger + + :param topology_uuid: The topology_uuid of this TapiTopologyNodeRef. # noqa: E501 + :type topology_uuid: str + :param node_uuid: The node_uuid of this TapiTopologyNodeRef. # noqa: E501 + :type node_uuid: str + """ + self.swagger_types = { + 'topology_uuid': str, + 'node_uuid': str + } + + self.attribute_map = { + 'topology_uuid': 'topology-uuid', + 'node_uuid': 'node-uuid' + } + self._topology_uuid = topology_uuid + self._node_uuid = node_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeRef of this TapiTopologyNodeRef. # noqa: E501 + :rtype: TapiTopologyNodeRef + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_uuid(self) -> str: + """Gets the topology_uuid of this TapiTopologyNodeRef. + + none # noqa: E501 + + :return: The topology_uuid of this TapiTopologyNodeRef. + :rtype: str + """ + return self._topology_uuid + + @topology_uuid.setter + def topology_uuid(self, topology_uuid: str): + """Sets the topology_uuid of this TapiTopologyNodeRef. + + none # noqa: E501 + + :param topology_uuid: The topology_uuid of this TapiTopologyNodeRef. + :type topology_uuid: str + """ + + self._topology_uuid = topology_uuid + + @property + def node_uuid(self) -> str: + """Gets the node_uuid of this TapiTopologyNodeRef. + + none # noqa: E501 + + :return: The node_uuid of this TapiTopologyNodeRef. + :rtype: str + """ + return self._node_uuid + + @node_uuid.setter + def node_uuid(self, node_uuid: str): + """Sets the node_uuid of this TapiTopologyNodeRef. + + none # noqa: E501 + + :param node_uuid: The node_uuid of this TapiTopologyNodeRef. + :type node_uuid: str + """ + + self._node_uuid = node_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group.py new file mode 100644 index 0000000000000000000000000000000000000000..af337f38d2a13f58990907fc25061e9007445726 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group.py @@ -0,0 +1,354 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_inter_rule_group import TapiTopologyInterRuleGroup # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_rule_group_ref import TapiTopologyNodeRuleGroupRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_risk_parameter_pac import TapiTopologyRiskParameterPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_rule import TapiTopologyRule # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeRuleGroup(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, risk_characteristic: List[TapiTopologyRiskCharacteristic]=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, inter_rule_group: List[TapiTopologyInterRuleGroup]=None, rule: List[TapiTopologyRule]=None, node_rule_group: List[TapiTopologyNodeRuleGroupRef]=None, node_edge_point: List[TapiTopologyNodeEdgePointRef]=None): # noqa: E501 + """TapiTopologyNodeRuleGroup - a model defined in Swagger + + :param name: The name of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type uuid: str + :param risk_characteristic: The risk_characteristic of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + :param cost_characteristic: The cost_characteristic of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param latency_characteristic: The latency_characteristic of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param available_capacity: The available_capacity of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param inter_rule_group: The inter_rule_group of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type inter_rule_group: List[TapiTopologyInterRuleGroup] + :param rule: The rule of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type rule: List[TapiTopologyRule] + :param node_rule_group: The node_rule_group of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type node_rule_group: List[TapiTopologyNodeRuleGroupRef] + :param node_edge_point: The node_edge_point of this TapiTopologyNodeRuleGroup. # noqa: E501 + :type node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'risk_characteristic': List[TapiTopologyRiskCharacteristic], + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'inter_rule_group': List[TapiTopologyInterRuleGroup], + 'rule': List[TapiTopologyRule], + 'node_rule_group': List[TapiTopologyNodeRuleGroupRef], + 'node_edge_point': List[TapiTopologyNodeEdgePointRef] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'risk_characteristic': 'risk-characteristic', + 'cost_characteristic': 'cost-characteristic', + 'latency_characteristic': 'latency-characteristic', + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'inter_rule_group': 'inter-rule-group', + 'rule': 'rule', + 'node_rule_group': 'node-rule-group', + 'node_edge_point': 'node-edge-point' + } + self._name = name + self._uuid = uuid + self._risk_characteristic = risk_characteristic + self._cost_characteristic = cost_characteristic + self._latency_characteristic = latency_characteristic + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._inter_rule_group = inter_rule_group + self._rule = rule + self._node_rule_group = node_rule_group + self._node_edge_point = node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeRuleGroup': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeRuleGroup of this TapiTopologyNodeRuleGroup. # noqa: E501 + :rtype: TapiTopologyNodeRuleGroup + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyNodeRuleGroup. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyNodeRuleGroup. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyNodeRuleGroup. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyNodeRuleGroup. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyNodeRuleGroup. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyNodeRuleGroup. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyNodeRuleGroup. + :type uuid: str + """ + + self._uuid = uuid + + @property + def risk_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_characteristic of this TapiTopologyNodeRuleGroup. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :return: The risk_characteristic of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_characteristic + + @risk_characteristic.setter + def risk_characteristic(self, risk_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_characteristic of this TapiTopologyNodeRuleGroup. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param risk_characteristic: The risk_characteristic of this TapiTopologyNodeRuleGroup. + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_characteristic = risk_characteristic + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyNodeRuleGroup. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyNodeRuleGroup. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyNodeRuleGroup. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyNodeRuleGroup. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyNodeRuleGroup. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyNodeRuleGroup. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyNodeRuleGroup. + + + :return: The available_capacity of this TapiTopologyNodeRuleGroup. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyNodeRuleGroup. + + + :param available_capacity: The available_capacity of this TapiTopologyNodeRuleGroup. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyNodeRuleGroup. + + + :return: The total_potential_capacity of this TapiTopologyNodeRuleGroup. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyNodeRuleGroup. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyNodeRuleGroup. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def inter_rule_group(self) -> List[TapiTopologyInterRuleGroup]: + """Gets the inter_rule_group of this TapiTopologyNodeRuleGroup. + + Nested NodeRuleGroups may have InterRuleGroups. The Superior NodeRuleGroup contains the nested NodeRuleGroups and their associated InterRuleGroups. This is equivalent to the Node-Topology hierarchy. # noqa: E501 + + :return: The inter_rule_group of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyInterRuleGroup] + """ + return self._inter_rule_group + + @inter_rule_group.setter + def inter_rule_group(self, inter_rule_group: List[TapiTopologyInterRuleGroup]): + """Sets the inter_rule_group of this TapiTopologyNodeRuleGroup. + + Nested NodeRuleGroups may have InterRuleGroups. The Superior NodeRuleGroup contains the nested NodeRuleGroups and their associated InterRuleGroups. This is equivalent to the Node-Topology hierarchy. # noqa: E501 + + :param inter_rule_group: The inter_rule_group of this TapiTopologyNodeRuleGroup. + :type inter_rule_group: List[TapiTopologyInterRuleGroup] + """ + + self._inter_rule_group = inter_rule_group + + @property + def rule(self) -> List[TapiTopologyRule]: + """Gets the rule of this TapiTopologyNodeRuleGroup. + + The list of rules of the NodeRuleGroup. # noqa: E501 + + :return: The rule of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyRule] + """ + return self._rule + + @rule.setter + def rule(self, rule: List[TapiTopologyRule]): + """Sets the rule of this TapiTopologyNodeRuleGroup. + + The list of rules of the NodeRuleGroup. # noqa: E501 + + :param rule: The rule of this TapiTopologyNodeRuleGroup. + :type rule: List[TapiTopologyRule] + """ + + self._rule = rule + + @property + def node_rule_group(self) -> List[TapiTopologyNodeRuleGroupRef]: + """Gets the node_rule_group of this TapiTopologyNodeRuleGroup. + + NodeRuleGroups may be nested such that finer grained rules may be applied. A nested rule group should have a subset of the NEPs of the superior rule group. # noqa: E501 + + :return: The node_rule_group of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyNodeRuleGroupRef] + """ + return self._node_rule_group + + @node_rule_group.setter + def node_rule_group(self, node_rule_group: List[TapiTopologyNodeRuleGroupRef]): + """Sets the node_rule_group of this TapiTopologyNodeRuleGroup. + + NodeRuleGroups may be nested such that finer grained rules may be applied. A nested rule group should have a subset of the NEPs of the superior rule group. # noqa: E501 + + :param node_rule_group: The node_rule_group of this TapiTopologyNodeRuleGroup. + :type node_rule_group: List[TapiTopologyNodeRuleGroupRef] + """ + + self._node_rule_group = node_rule_group + + @property + def node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the node_edge_point of this TapiTopologyNodeRuleGroup. + + NEPs and their client CEPs that the rules apply to. # noqa: E501 + + :return: The node_edge_point of this TapiTopologyNodeRuleGroup. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._node_edge_point + + @node_edge_point.setter + def node_edge_point(self, node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the node_edge_point of this TapiTopologyNodeRuleGroup. + + NEPs and their client CEPs that the rules apply to. # noqa: E501 + + :param node_edge_point: The node_edge_point of this TapiTopologyNodeRuleGroup. + :type node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._node_edge_point = node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..0f093a2582774e1476092243e60694de5f0229d1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_ref import TapiTopologyNodeRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeRuleGroupRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_uuid: str=None, node_rule_group_uuid: str=None): # noqa: E501 + """TapiTopologyNodeRuleGroupRef - a model defined in Swagger + + :param node_uuid: The node_uuid of this TapiTopologyNodeRuleGroupRef. # noqa: E501 + :type node_uuid: str + :param node_rule_group_uuid: The node_rule_group_uuid of this TapiTopologyNodeRuleGroupRef. # noqa: E501 + :type node_rule_group_uuid: str + """ + self.swagger_types = { + 'node_uuid': str, + 'node_rule_group_uuid': str + } + + self.attribute_map = { + 'node_uuid': 'node-uuid', + 'node_rule_group_uuid': 'node-rule-group-uuid' + } + self._node_uuid = node_uuid + self._node_rule_group_uuid = node_rule_group_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeRuleGroupRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeRuleGroupRef of this TapiTopologyNodeRuleGroupRef. # noqa: E501 + :rtype: TapiTopologyNodeRuleGroupRef + """ + return util.deserialize_model(dikt, cls) + + @property + def node_uuid(self) -> str: + """Gets the node_uuid of this TapiTopologyNodeRuleGroupRef. + + none # noqa: E501 + + :return: The node_uuid of this TapiTopologyNodeRuleGroupRef. + :rtype: str + """ + return self._node_uuid + + @node_uuid.setter + def node_uuid(self, node_uuid: str): + """Sets the node_uuid of this TapiTopologyNodeRuleGroupRef. + + none # noqa: E501 + + :param node_uuid: The node_uuid of this TapiTopologyNodeRuleGroupRef. + :type node_uuid: str + """ + + self._node_uuid = node_uuid + + @property + def node_rule_group_uuid(self) -> str: + """Gets the node_rule_group_uuid of this TapiTopologyNodeRuleGroupRef. + + none # noqa: E501 + + :return: The node_rule_group_uuid of this TapiTopologyNodeRuleGroupRef. + :rtype: str + """ + return self._node_rule_group_uuid + + @node_rule_group_uuid.setter + def node_rule_group_uuid(self, node_rule_group_uuid: str): + """Sets the node_rule_group_uuid of this TapiTopologyNodeRuleGroupRef. + + none # noqa: E501 + + :param node_rule_group_uuid: The node_rule_group_uuid of this TapiTopologyNodeRuleGroupRef. + :type node_rule_group_uuid: str + """ + + self._node_rule_group_uuid = node_rule_group_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..ffc2990318100152ad49a3f5c5abd531d4f47f34 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_rule_group_ref import TapiTopologyNodeRuleGroupRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeRuleGroupRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, associated_node_rule_group: TapiTopologyNodeRuleGroupRef=None): # noqa: E501 + """TapiTopologyNodeRuleGroupRefWrapper - a model defined in Swagger + + :param associated_node_rule_group: The associated_node_rule_group of this TapiTopologyNodeRuleGroupRefWrapper. # noqa: E501 + :type associated_node_rule_group: TapiTopologyNodeRuleGroupRef + """ + self.swagger_types = { + 'associated_node_rule_group': TapiTopologyNodeRuleGroupRef + } + + self.attribute_map = { + 'associated_node_rule_group': 'associated-node-rule-group' + } + self._associated_node_rule_group = associated_node_rule_group + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeRuleGroupRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeRuleGroupRefWrapper of this TapiTopologyNodeRuleGroupRefWrapper. # noqa: E501 + :rtype: TapiTopologyNodeRuleGroupRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def associated_node_rule_group(self) -> TapiTopologyNodeRuleGroupRef: + """Gets the associated_node_rule_group of this TapiTopologyNodeRuleGroupRefWrapper. + + + :return: The associated_node_rule_group of this TapiTopologyNodeRuleGroupRefWrapper. + :rtype: TapiTopologyNodeRuleGroupRef + """ + return self._associated_node_rule_group + + @associated_node_rule_group.setter + def associated_node_rule_group(self, associated_node_rule_group: TapiTopologyNodeRuleGroupRef): + """Sets the associated_node_rule_group of this TapiTopologyNodeRuleGroupRefWrapper. + + + :param associated_node_rule_group: The associated_node_rule_group of this TapiTopologyNodeRuleGroupRefWrapper. + :type associated_node_rule_group: TapiTopologyNodeRuleGroupRef + """ + + self._associated_node_rule_group = associated_node_rule_group diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..1ce586e129a21b56da19b1a78cdec528d8fde549 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_node_rule_group_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_node_rule_group import TapiTopologyNodeRuleGroup # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyNodeRuleGroupWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node_rule_group: TapiTopologyNodeRuleGroup=None): # noqa: E501 + """TapiTopologyNodeRuleGroupWrapper - a model defined in Swagger + + :param node_rule_group: The node_rule_group of this TapiTopologyNodeRuleGroupWrapper. # noqa: E501 + :type node_rule_group: TapiTopologyNodeRuleGroup + """ + self.swagger_types = { + 'node_rule_group': TapiTopologyNodeRuleGroup + } + + self.attribute_map = { + 'node_rule_group': 'node-rule-group' + } + self._node_rule_group = node_rule_group + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyNodeRuleGroupWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.NodeRuleGroupWrapper of this TapiTopologyNodeRuleGroupWrapper. # noqa: E501 + :rtype: TapiTopologyNodeRuleGroupWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def node_rule_group(self) -> TapiTopologyNodeRuleGroup: + """Gets the node_rule_group of this TapiTopologyNodeRuleGroupWrapper. + + + :return: The node_rule_group of this TapiTopologyNodeRuleGroupWrapper. + :rtype: TapiTopologyNodeRuleGroup + """ + return self._node_rule_group + + @node_rule_group.setter + def node_rule_group(self, node_rule_group: TapiTopologyNodeRuleGroup): + """Sets the node_rule_group of this TapiTopologyNodeRuleGroupWrapper. + + + :param node_rule_group: The node_rule_group of this TapiTopologyNodeRuleGroupWrapper. + :type node_rule_group: TapiTopologyNodeRuleGroup + """ + + self._node_rule_group = node_rule_group diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule.py new file mode 100644 index 0000000000000000000000000000000000000000..d5bfbe10ef4b23ebc54db30535e78d06786b3fd2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyPortRoleRule(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, port_role_rule: List[str]=None, port_role: List[str]=None): # noqa: E501 + """TapiTopologyPortRoleRule - a model defined in Swagger + + :param port_role_rule: The port_role_rule of this TapiTopologyPortRoleRule. # noqa: E501 + :type port_role_rule: List[str] + :param port_role: The port_role of this TapiTopologyPortRoleRule. # noqa: E501 + :type port_role: List[str] + """ + self.swagger_types = { + 'port_role_rule': List[str], + 'port_role': List[str] + } + + self.attribute_map = { + 'port_role_rule': 'port-role-rule', + 'port_role': 'port-role' + } + self._port_role_rule = port_role_rule + self._port_role = port_role + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyPortRoleRule': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.PortRoleRule of this TapiTopologyPortRoleRule. # noqa: E501 + :rtype: TapiTopologyPortRoleRule + """ + return util.deserialize_model(dikt, cls) + + @property + def port_role_rule(self) -> List[str]: + """Gets the port_role_rule of this TapiTopologyPortRoleRule. + + Where the rule references more than one port role or where there are rule intersections either as a result of overlay of rules or inter rule group usage indicates role matching criteria for a connection following the rules. For example if two port roles, 'a' and 'b', are listed and the port role rule is 'different', this means that a connection connecting points in that group must have port roles that are different for each CEP in that group. In the example if a connection can have n ports of role 'a' and m ports of role 'b' then a maximum of two ports can be drawn from the NEPs of the group and where there are two, one must be role 'a' and one must be role 'b'. # noqa: E501 + + :return: The port_role_rule of this TapiTopologyPortRoleRule. + :rtype: List[str] + """ + return self._port_role_rule + + @port_role_rule.setter + def port_role_rule(self, port_role_rule: List[str]): + """Sets the port_role_rule of this TapiTopologyPortRoleRule. + + Where the rule references more than one port role or where there are rule intersections either as a result of overlay of rules or inter rule group usage indicates role matching criteria for a connection following the rules. For example if two port roles, 'a' and 'b', are listed and the port role rule is 'different', this means that a connection connecting points in that group must have port roles that are different for each CEP in that group. In the example if a connection can have n ports of role 'a' and m ports of role 'b' then a maximum of two ports can be drawn from the NEPs of the group and where there are two, one must be role 'a' and one must be role 'b'. # noqa: E501 + + :param port_role_rule: The port_role_rule of this TapiTopologyPortRoleRule. + :type port_role_rule: List[str] + """ + + self._port_role_rule = port_role_rule + + @property + def port_role(self) -> List[str]: + """Gets the port_role of this TapiTopologyPortRoleRule. + + The role(s) of the port(s) considered in the rule. # noqa: E501 + + :return: The port_role of this TapiTopologyPortRoleRule. + :rtype: List[str] + """ + return self._port_role + + @port_role.setter + def port_role(self, port_role: List[str]): + """Sets the port_role of this TapiTopologyPortRoleRule. + + The role(s) of the port(s) considered in the rule. # noqa: E501 + + :param port_role: The port_role of this TapiTopologyPortRoleRule. + :type port_role: List[str] + """ + + self._port_role = port_role diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..a711600a972f892a0b9dfa0bf950f2fbbb019cfa --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_port_role_rule_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_port_role_rule import TapiTopologyPortRoleRule # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyPortRoleRuleWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cep_port_role: TapiTopologyPortRoleRule=None): # noqa: E501 + """TapiTopologyPortRoleRuleWrapper - a model defined in Swagger + + :param cep_port_role: The cep_port_role of this TapiTopologyPortRoleRuleWrapper. # noqa: E501 + :type cep_port_role: TapiTopologyPortRoleRule + """ + self.swagger_types = { + 'cep_port_role': TapiTopologyPortRoleRule + } + + self.attribute_map = { + 'cep_port_role': 'cep-port-role' + } + self._cep_port_role = cep_port_role + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyPortRoleRuleWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.PortRoleRuleWrapper of this TapiTopologyPortRoleRuleWrapper. # noqa: E501 + :rtype: TapiTopologyPortRoleRuleWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def cep_port_role(self) -> TapiTopologyPortRoleRule: + """Gets the cep_port_role of this TapiTopologyPortRoleRuleWrapper. + + + :return: The cep_port_role of this TapiTopologyPortRoleRuleWrapper. + :rtype: TapiTopologyPortRoleRule + """ + return self._cep_port_role + + @cep_port_role.setter + def cep_port_role(self, cep_port_role: TapiTopologyPortRoleRule): + """Sets the cep_port_role of this TapiTopologyPortRoleRuleWrapper. + + + :param cep_port_role: The cep_port_role of this TapiTopologyPortRoleRuleWrapper. + :type cep_port_role: TapiTopologyPortRoleRule + """ + + self._cep_port_role = cep_port_role diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_protection_type.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_protection_type.py new file mode 100644 index 0000000000000000000000000000000000000000..ae81d84505a51f0c6ecec89d87644427a2ecddb2 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_protection_type.py @@ -0,0 +1,48 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyProtectionType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + NO_PROTECTON = "NO_PROTECTON" + ONE_PLUS_ONE_PROTECTION = "ONE_PLUS_ONE_PROTECTION" + ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION = "ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION" + PERMANENT_ONE_PLUS_ONE_PROTECTION = "PERMANENT_ONE_PLUS_ONE_PROTECTION" + ONE_FOR_ONE_PROTECTION = "ONE_FOR_ONE_PROTECTION" + DYNAMIC_RESTORATION = "DYNAMIC_RESTORATION" + PRE_COMPUTED_RESTORATION = "PRE_COMPUTED_RESTORATION" + ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION = "ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION" + def __init__(self): # noqa: E501 + """TapiTopologyProtectionType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyProtectionType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ProtectionType of this TapiTopologyProtectionType. # noqa: E501 + :rtype: TapiTopologyProtectionType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type.py new file mode 100644 index 0000000000000000000000000000000000000000..21634e71cd123631577bd2bc8b8dde2632d87d9e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_protection_type import TapiTopologyProtectionType # noqa: F401,E501 +from tapi_server.models.tapi_topology_restoration_policy import TapiTopologyRestorationPolicy # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyResilienceType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, restoration_policy: TapiTopologyRestorationPolicy=None, protection_type: TapiTopologyProtectionType=None): # noqa: E501 + """TapiTopologyResilienceType - a model defined in Swagger + + :param restoration_policy: The restoration_policy of this TapiTopologyResilienceType. # noqa: E501 + :type restoration_policy: TapiTopologyRestorationPolicy + :param protection_type: The protection_type of this TapiTopologyResilienceType. # noqa: E501 + :type protection_type: TapiTopologyProtectionType + """ + self.swagger_types = { + 'restoration_policy': TapiTopologyRestorationPolicy, + 'protection_type': TapiTopologyProtectionType + } + + self.attribute_map = { + 'restoration_policy': 'restoration-policy', + 'protection_type': 'protection-type' + } + self._restoration_policy = restoration_policy + self._protection_type = protection_type + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyResilienceType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ResilienceType of this TapiTopologyResilienceType. # noqa: E501 + :rtype: TapiTopologyResilienceType + """ + return util.deserialize_model(dikt, cls) + + @property + def restoration_policy(self) -> TapiTopologyRestorationPolicy: + """Gets the restoration_policy of this TapiTopologyResilienceType. + + + :return: The restoration_policy of this TapiTopologyResilienceType. + :rtype: TapiTopologyRestorationPolicy + """ + return self._restoration_policy + + @restoration_policy.setter + def restoration_policy(self, restoration_policy: TapiTopologyRestorationPolicy): + """Sets the restoration_policy of this TapiTopologyResilienceType. + + + :param restoration_policy: The restoration_policy of this TapiTopologyResilienceType. + :type restoration_policy: TapiTopologyRestorationPolicy + """ + + self._restoration_policy = restoration_policy + + @property + def protection_type(self) -> TapiTopologyProtectionType: + """Gets the protection_type of this TapiTopologyResilienceType. + + + :return: The protection_type of this TapiTopologyResilienceType. + :rtype: TapiTopologyProtectionType + """ + return self._protection_type + + @protection_type.setter + def protection_type(self, protection_type: TapiTopologyProtectionType): + """Sets the protection_type of this TapiTopologyResilienceType. + + + :param protection_type: The protection_type of this TapiTopologyResilienceType. + :type protection_type: TapiTopologyProtectionType + """ + + self._protection_type = protection_type diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..0aee9c035b3611c5f03716101aa0a0b0c7683ef7 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_resilience_type_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_resilience_type import TapiTopologyResilienceType # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyResilienceTypeWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, resilience_type: TapiTopologyResilienceType=None): # noqa: E501 + """TapiTopologyResilienceTypeWrapper - a model defined in Swagger + + :param resilience_type: The resilience_type of this TapiTopologyResilienceTypeWrapper. # noqa: E501 + :type resilience_type: TapiTopologyResilienceType + """ + self.swagger_types = { + 'resilience_type': TapiTopologyResilienceType + } + + self.attribute_map = { + 'resilience_type': 'resilience-type' + } + self._resilience_type = resilience_type + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyResilienceTypeWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ResilienceTypeWrapper of this TapiTopologyResilienceTypeWrapper. # noqa: E501 + :rtype: TapiTopologyResilienceTypeWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def resilience_type(self) -> TapiTopologyResilienceType: + """Gets the resilience_type of this TapiTopologyResilienceTypeWrapper. + + + :return: The resilience_type of this TapiTopologyResilienceTypeWrapper. + :rtype: TapiTopologyResilienceType + """ + return self._resilience_type + + @resilience_type.setter + def resilience_type(self, resilience_type: TapiTopologyResilienceType): + """Sets the resilience_type of this TapiTopologyResilienceTypeWrapper. + + + :param resilience_type: The resilience_type of this TapiTopologyResilienceTypeWrapper. + :type resilience_type: TapiTopologyResilienceType + """ + + self._resilience_type = resilience_type diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_restoration_policy.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_restoration_policy.py new file mode 100644 index 0000000000000000000000000000000000000000..0986e10693a23a54f1a6fb26fca981ecc376d473 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_restoration_policy.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyRestorationPolicy(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + PER_DOMAIN_RESTORATION = "PER_DOMAIN_RESTORATION" + END_TO_END_RESTORATION = "END_TO_END_RESTORATION" + NA = "NA" + def __init__(self): # noqa: E501 + """TapiTopologyRestorationPolicy - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRestorationPolicy': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RestorationPolicy of this TapiTopologyRestorationPolicy. # noqa: E501 + :rtype: TapiTopologyRestorationPolicy + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic.py new file mode 100644 index 0000000000000000000000000000000000000000..8e65e521e5cb653b379fd648e15aff18876c5375 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyRiskCharacteristic(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, risk_characteristic_name: str=None, risk_identifier_list: List[str]=None): # noqa: E501 + """TapiTopologyRiskCharacteristic - a model defined in Swagger + + :param risk_characteristic_name: The risk_characteristic_name of this TapiTopologyRiskCharacteristic. # noqa: E501 + :type risk_characteristic_name: str + :param risk_identifier_list: The risk_identifier_list of this TapiTopologyRiskCharacteristic. # noqa: E501 + :type risk_identifier_list: List[str] + """ + self.swagger_types = { + 'risk_characteristic_name': str, + 'risk_identifier_list': List[str] + } + + self.attribute_map = { + 'risk_characteristic_name': 'risk-characteristic-name', + 'risk_identifier_list': 'risk-identifier-list' + } + self._risk_characteristic_name = risk_characteristic_name + self._risk_identifier_list = risk_identifier_list + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRiskCharacteristic': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RiskCharacteristic of this TapiTopologyRiskCharacteristic. # noqa: E501 + :rtype: TapiTopologyRiskCharacteristic + """ + return util.deserialize_model(dikt, cls) + + @property + def risk_characteristic_name(self) -> str: + """Gets the risk_characteristic_name of this TapiTopologyRiskCharacteristic. + + The name of the risk characteristic. The characteristic may be related to a specific degree of closeness. For example a particular characteristic may apply to failures that are localized (e.g. to one side of a road) where as another characteristic may relate to failures that have a broader impact (e.g. both sides of a road that crosses a bridge). Depending upon the importance of the traffic being routed different risk characteristics will be evaluated. # noqa: E501 + + :return: The risk_characteristic_name of this TapiTopologyRiskCharacteristic. + :rtype: str + """ + return self._risk_characteristic_name + + @risk_characteristic_name.setter + def risk_characteristic_name(self, risk_characteristic_name: str): + """Sets the risk_characteristic_name of this TapiTopologyRiskCharacteristic. + + The name of the risk characteristic. The characteristic may be related to a specific degree of closeness. For example a particular characteristic may apply to failures that are localized (e.g. to one side of a road) where as another characteristic may relate to failures that have a broader impact (e.g. both sides of a road that crosses a bridge). Depending upon the importance of the traffic being routed different risk characteristics will be evaluated. # noqa: E501 + + :param risk_characteristic_name: The risk_characteristic_name of this TapiTopologyRiskCharacteristic. + :type risk_characteristic_name: str + """ + + self._risk_characteristic_name = risk_characteristic_name + + @property + def risk_identifier_list(self) -> List[str]: + """Gets the risk_identifier_list of this TapiTopologyRiskCharacteristic. + + A list of the identifiers of each physical/geographic unit (with the specific risk characteristic) that is related to a segment of the TopologicalEntity. # noqa: E501 + + :return: The risk_identifier_list of this TapiTopologyRiskCharacteristic. + :rtype: List[str] + """ + return self._risk_identifier_list + + @risk_identifier_list.setter + def risk_identifier_list(self, risk_identifier_list: List[str]): + """Sets the risk_identifier_list of this TapiTopologyRiskCharacteristic. + + A list of the identifiers of each physical/geographic unit (with the specific risk characteristic) that is related to a segment of the TopologicalEntity. # noqa: E501 + + :param risk_identifier_list: The risk_identifier_list of this TapiTopologyRiskCharacteristic. + :type risk_identifier_list: List[str] + """ + + self._risk_identifier_list = risk_identifier_list diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..030e148e23f6dde64eed41f2986a50088359c3f6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_characteristic_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyRiskCharacteristicWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, risk_diversity_characteristic: TapiTopologyRiskCharacteristic=None): # noqa: E501 + """TapiTopologyRiskCharacteristicWrapper - a model defined in Swagger + + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiTopologyRiskCharacteristicWrapper. # noqa: E501 + :type risk_diversity_characteristic: TapiTopologyRiskCharacteristic + """ + self.swagger_types = { + 'risk_diversity_characteristic': TapiTopologyRiskCharacteristic + } + + self.attribute_map = { + 'risk_diversity_characteristic': 'risk-diversity-characteristic' + } + self._risk_diversity_characteristic = risk_diversity_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRiskCharacteristicWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RiskCharacteristicWrapper of this TapiTopologyRiskCharacteristicWrapper. # noqa: E501 + :rtype: TapiTopologyRiskCharacteristicWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def risk_diversity_characteristic(self) -> TapiTopologyRiskCharacteristic: + """Gets the risk_diversity_characteristic of this TapiTopologyRiskCharacteristicWrapper. + + + :return: The risk_diversity_characteristic of this TapiTopologyRiskCharacteristicWrapper. + :rtype: TapiTopologyRiskCharacteristic + """ + return self._risk_diversity_characteristic + + @risk_diversity_characteristic.setter + def risk_diversity_characteristic(self, risk_diversity_characteristic: TapiTopologyRiskCharacteristic): + """Sets the risk_diversity_characteristic of this TapiTopologyRiskCharacteristicWrapper. + + + :param risk_diversity_characteristic: The risk_diversity_characteristic of this TapiTopologyRiskCharacteristicWrapper. + :type risk_diversity_characteristic: TapiTopologyRiskCharacteristic + """ + + self._risk_diversity_characteristic = risk_diversity_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_parameter_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_parameter_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..0aa546ad8ff49aa299c9a90174c9cb912269c725 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_risk_parameter_pac.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_risk_characteristic import TapiTopologyRiskCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyRiskParameterPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, risk_characteristic: List[TapiTopologyRiskCharacteristic]=None): # noqa: E501 + """TapiTopologyRiskParameterPac - a model defined in Swagger + + :param risk_characteristic: The risk_characteristic of this TapiTopologyRiskParameterPac. # noqa: E501 + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + """ + self.swagger_types = { + 'risk_characteristic': List[TapiTopologyRiskCharacteristic] + } + + self.attribute_map = { + 'risk_characteristic': 'risk-characteristic' + } + self._risk_characteristic = risk_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRiskParameterPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RiskParameterPac of this TapiTopologyRiskParameterPac. # noqa: E501 + :rtype: TapiTopologyRiskParameterPac + """ + return util.deserialize_model(dikt, cls) + + @property + def risk_characteristic(self) -> List[TapiTopologyRiskCharacteristic]: + """Gets the risk_characteristic of this TapiTopologyRiskParameterPac. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :return: The risk_characteristic of this TapiTopologyRiskParameterPac. + :rtype: List[TapiTopologyRiskCharacteristic] + """ + return self._risk_characteristic + + @risk_characteristic.setter + def risk_characteristic(self, risk_characteristic: List[TapiTopologyRiskCharacteristic]): + """Sets the risk_characteristic of this TapiTopologyRiskParameterPac. + + A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration. # noqa: E501 + + :param risk_characteristic: The risk_characteristic of this TapiTopologyRiskParameterPac. + :type risk_characteristic: List[TapiTopologyRiskCharacteristic] + """ + + self._risk_characteristic = risk_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_rule.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule.py new file mode 100644 index 0000000000000000000000000000000000000000..8d087fefb918b7fb167522f3964a96fb8519cd3f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule.py @@ -0,0 +1,346 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_port_direction import TapiCommonPortDirection # noqa: F401,E501 +from tapi_server.models.tapi_topology_connection_spec_reference import TapiTopologyConnectionSpecReference # noqa: F401,E501 +from tapi_server.models.tapi_topology_forwarding_rule import TapiTopologyForwardingRule # noqa: F401,E501 +from tapi_server.models.tapi_topology_port_role_rule import TapiTopologyPortRoleRule # noqa: F401,E501 +from tapi_server.models.tapi_topology_rule_type import TapiTopologyRuleType # noqa: F401,E501 +from tapi_server.models.tapi_topology_signal_property_rule import TapiTopologySignalPropertyRule # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyRule(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, local_id: str=None, complex_rule: List[str]=None, rule_type: TapiTopologyRuleType=None, signal_property: TapiTopologySignalPropertyRule=None, connection_spec_reference: List[TapiTopologyConnectionSpecReference]=None, cep_port_role: List[TapiTopologyPortRoleRule]=None, cep_direction: List[TapiCommonPortDirection]=None, override_priority: int=None, layer_protocol_qualifier: List[str]=None, forwarding_rule: TapiTopologyForwardingRule=None): # noqa: E501 + """TapiTopologyRule - a model defined in Swagger + + :param name: The name of this TapiTopologyRule. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param local_id: The local_id of this TapiTopologyRule. # noqa: E501 + :type local_id: str + :param complex_rule: The complex_rule of this TapiTopologyRule. # noqa: E501 + :type complex_rule: List[str] + :param rule_type: The rule_type of this TapiTopologyRule. # noqa: E501 + :type rule_type: TapiTopologyRuleType + :param signal_property: The signal_property of this TapiTopologyRule. # noqa: E501 + :type signal_property: TapiTopologySignalPropertyRule + :param connection_spec_reference: The connection_spec_reference of this TapiTopologyRule. # noqa: E501 + :type connection_spec_reference: List[TapiTopologyConnectionSpecReference] + :param cep_port_role: The cep_port_role of this TapiTopologyRule. # noqa: E501 + :type cep_port_role: List[TapiTopologyPortRoleRule] + :param cep_direction: The cep_direction of this TapiTopologyRule. # noqa: E501 + :type cep_direction: List[TapiCommonPortDirection] + :param override_priority: The override_priority of this TapiTopologyRule. # noqa: E501 + :type override_priority: int + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiTopologyRule. # noqa: E501 + :type layer_protocol_qualifier: List[str] + :param forwarding_rule: The forwarding_rule of this TapiTopologyRule. # noqa: E501 + :type forwarding_rule: TapiTopologyForwardingRule + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'local_id': str, + 'complex_rule': List[str], + 'rule_type': TapiTopologyRuleType, + 'signal_property': TapiTopologySignalPropertyRule, + 'connection_spec_reference': List[TapiTopologyConnectionSpecReference], + 'cep_port_role': List[TapiTopologyPortRoleRule], + 'cep_direction': List[TapiCommonPortDirection], + 'override_priority': int, + 'layer_protocol_qualifier': List[str], + 'forwarding_rule': TapiTopologyForwardingRule + } + + self.attribute_map = { + 'name': 'name', + 'local_id': 'local-id', + 'complex_rule': 'complex-rule', + 'rule_type': 'rule-type', + 'signal_property': 'signal-property', + 'connection_spec_reference': 'connection-spec-reference', + 'cep_port_role': 'cep-port-role', + 'cep_direction': 'cep-direction', + 'override_priority': 'override-priority', + 'layer_protocol_qualifier': 'layer-protocol-qualifier', + 'forwarding_rule': 'forwarding-rule' + } + self._name = name + self._local_id = local_id + self._complex_rule = complex_rule + self._rule_type = rule_type + self._signal_property = signal_property + self._connection_spec_reference = connection_spec_reference + self._cep_port_role = cep_port_role + self._cep_direction = cep_direction + self._override_priority = override_priority + self._layer_protocol_qualifier = layer_protocol_qualifier + self._forwarding_rule = forwarding_rule + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRule': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.Rule of this TapiTopologyRule. # noqa: E501 + :rtype: TapiTopologyRule + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyRule. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyRule. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyRule. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyRule. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def local_id(self) -> str: + """Gets the local_id of this TapiTopologyRule. + + none # noqa: E501 + + :return: The local_id of this TapiTopologyRule. + :rtype: str + """ + return self._local_id + + @local_id.setter + def local_id(self, local_id: str): + """Sets the local_id of this TapiTopologyRule. + + none # noqa: E501 + + :param local_id: The local_id of this TapiTopologyRule. + :type local_id: str + """ + + self._local_id = local_id + + @property + def complex_rule(self) -> List[str]: + """Gets the complex_rule of this TapiTopologyRule. + + Allows for more complex rules where the basic rule system is not sufficient. # noqa: E501 + + :return: The complex_rule of this TapiTopologyRule. + :rtype: List[str] + """ + return self._complex_rule + + @complex_rule.setter + def complex_rule(self, complex_rule: List[str]): + """Sets the complex_rule of this TapiTopologyRule. + + Allows for more complex rules where the basic rule system is not sufficient. # noqa: E501 + + :param complex_rule: The complex_rule of this TapiTopologyRule. + :type complex_rule: List[str] + """ + + self._complex_rule = complex_rule + + @property + def rule_type(self) -> TapiTopologyRuleType: + """Gets the rule_type of this TapiTopologyRule. + + + :return: The rule_type of this TapiTopologyRule. + :rtype: TapiTopologyRuleType + """ + return self._rule_type + + @rule_type.setter + def rule_type(self, rule_type: TapiTopologyRuleType): + """Sets the rule_type of this TapiTopologyRule. + + + :param rule_type: The rule_type of this TapiTopologyRule. + :type rule_type: TapiTopologyRuleType + """ + + self._rule_type = rule_type + + @property + def signal_property(self) -> TapiTopologySignalPropertyRule: + """Gets the signal_property of this TapiTopologyRule. + + + :return: The signal_property of this TapiTopologyRule. + :rtype: TapiTopologySignalPropertyRule + """ + return self._signal_property + + @signal_property.setter + def signal_property(self, signal_property: TapiTopologySignalPropertyRule): + """Sets the signal_property of this TapiTopologyRule. + + + :param signal_property: The signal_property of this TapiTopologyRule. + :type signal_property: TapiTopologySignalPropertyRule + """ + + self._signal_property = signal_property + + @property + def connection_spec_reference(self) -> List[TapiTopologyConnectionSpecReference]: + """Gets the connection_spec_reference of this TapiTopologyRule. + + Identifies the type of connection that the rule applies to. If the attribute is not present then the rule applies to all types of connection supported by the device. # noqa: E501 + + :return: The connection_spec_reference of this TapiTopologyRule. + :rtype: List[TapiTopologyConnectionSpecReference] + """ + return self._connection_spec_reference + + @connection_spec_reference.setter + def connection_spec_reference(self, connection_spec_reference: List[TapiTopologyConnectionSpecReference]): + """Sets the connection_spec_reference of this TapiTopologyRule. + + Identifies the type of connection that the rule applies to. If the attribute is not present then the rule applies to all types of connection supported by the device. # noqa: E501 + + :param connection_spec_reference: The connection_spec_reference of this TapiTopologyRule. + :type connection_spec_reference: List[TapiTopologyConnectionSpecReference] + """ + + self._connection_spec_reference = connection_spec_reference + + @property + def cep_port_role(self) -> List[TapiTopologyPortRoleRule]: + """Gets the cep_port_role of this TapiTopologyRule. + + Indicates the port role to which the rule applies. The port role is interpreted in the context of the connection type which is identified by the connection spec. The port role is not meaningful in the absence of a connection spec reference. If a node rule group carries a port role, that role applies also to the associated inter rule where the combination of the roles in the node rule groups at the ends of the inter group rule define the connection orientation. For example a root-and-leaf connection may be used in a node where a node rule group collects one set of NEPs has the port role 'root' and another node rule group collects another set of NEPs has the port role 'leaf' where these are joined by an inter rule group. This combination specifies an allowed orientation of the root-and-leaf connection. No port role statement means all port roles are allowed. # noqa: E501 + + :return: The cep_port_role of this TapiTopologyRule. + :rtype: List[TapiTopologyPortRoleRule] + """ + return self._cep_port_role + + @cep_port_role.setter + def cep_port_role(self, cep_port_role: List[TapiTopologyPortRoleRule]): + """Sets the cep_port_role of this TapiTopologyRule. + + Indicates the port role to which the rule applies. The port role is interpreted in the context of the connection type which is identified by the connection spec. The port role is not meaningful in the absence of a connection spec reference. If a node rule group carries a port role, that role applies also to the associated inter rule where the combination of the roles in the node rule groups at the ends of the inter group rule define the connection orientation. For example a root-and-leaf connection may be used in a node where a node rule group collects one set of NEPs has the port role 'root' and another node rule group collects another set of NEPs has the port role 'leaf' where these are joined by an inter rule group. This combination specifies an allowed orientation of the root-and-leaf connection. No port role statement means all port roles are allowed. # noqa: E501 + + :param cep_port_role: The cep_port_role of this TapiTopologyRule. + :type cep_port_role: List[TapiTopologyPortRoleRule] + """ + + self._cep_port_role = cep_port_role + + @property + def cep_direction(self) -> List[TapiCommonPortDirection]: + """Gets the cep_direction of this TapiTopologyRule. + + cep direction is a list of port directions that the rule applies to. No entry means all cep directions. # noqa: E501 + + :return: The cep_direction of this TapiTopologyRule. + :rtype: List[TapiCommonPortDirection] + """ + return self._cep_direction + + @cep_direction.setter + def cep_direction(self, cep_direction: List[TapiCommonPortDirection]): + """Sets the cep_direction of this TapiTopologyRule. + + cep direction is a list of port directions that the rule applies to. No entry means all cep directions. # noqa: E501 + + :param cep_direction: The cep_direction of this TapiTopologyRule. + :type cep_direction: List[TapiCommonPortDirection] + """ + + self._cep_direction = cep_direction + + @property + def override_priority(self) -> int: + """Gets the override_priority of this TapiTopologyRule. + + The overridePriority allows for one rule in a rule group to override another. Priority n rules override priority n+1 rules. Rules of the same priority override as follows (n overrides n+1): 1 - MustNot 2 - Must 3 - May 4 - Null Within a rule the flexibility rules (signal, port role...) override as follows (n overriedes n+1): 1 - Any 2 - Same 3 - Different Where there are two or more 'Same' rules, they will form an intersection where all must be met. # noqa: E501 + + :return: The override_priority of this TapiTopologyRule. + :rtype: int + """ + return self._override_priority + + @override_priority.setter + def override_priority(self, override_priority: int): + """Sets the override_priority of this TapiTopologyRule. + + The overridePriority allows for one rule in a rule group to override another. Priority n rules override priority n+1 rules. Rules of the same priority override as follows (n overrides n+1): 1 - MustNot 2 - Must 3 - May 4 - Null Within a rule the flexibility rules (signal, port role...) override as follows (n overriedes n+1): 1 - Any 2 - Same 3 - Different Where there are two or more 'Same' rules, they will form an intersection where all must be met. # noqa: E501 + + :param override_priority: The override_priority of this TapiTopologyRule. + :type override_priority: int + """ + + self._override_priority = override_priority + + @property + def layer_protocol_qualifier(self) -> List[str]: + """Gets the layer_protocol_qualifier of this TapiTopologyRule. + + Qualifies a rule for a particular layerProtocol identifying the qualifiers that the rule apples to. If the attribute is not present then the rule applies to all relevant qualifiers of the layer protocol of the parent entity. # noqa: E501 + + :return: The layer_protocol_qualifier of this TapiTopologyRule. + :rtype: List[str] + """ + return self._layer_protocol_qualifier + + @layer_protocol_qualifier.setter + def layer_protocol_qualifier(self, layer_protocol_qualifier: List[str]): + """Sets the layer_protocol_qualifier of this TapiTopologyRule. + + Qualifies a rule for a particular layerProtocol identifying the qualifiers that the rule apples to. If the attribute is not present then the rule applies to all relevant qualifiers of the layer protocol of the parent entity. # noqa: E501 + + :param layer_protocol_qualifier: The layer_protocol_qualifier of this TapiTopologyRule. + :type layer_protocol_qualifier: List[str] + """ + + self._layer_protocol_qualifier = layer_protocol_qualifier + + @property + def forwarding_rule(self) -> TapiTopologyForwardingRule: + """Gets the forwarding_rule of this TapiTopologyRule. + + + :return: The forwarding_rule of this TapiTopologyRule. + :rtype: TapiTopologyForwardingRule + """ + return self._forwarding_rule + + @forwarding_rule.setter + def forwarding_rule(self, forwarding_rule: TapiTopologyForwardingRule): + """Sets the forwarding_rule of this TapiTopologyRule. + + + :param forwarding_rule: The forwarding_rule of this TapiTopologyRule. + :type forwarding_rule: TapiTopologyForwardingRule + """ + + self._forwarding_rule = forwarding_rule diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_type.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_type.py new file mode 100644 index 0000000000000000000000000000000000000000..3cdfeafe5ebe9d8af5deb7efeaf0ae5c8d33af87 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_type.py @@ -0,0 +1,46 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyRuleType(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + allowed enum values + """ + FORWARDING = "FORWARDING" + CAPACITY = "CAPACITY" + COST = "COST" + TIMING = "TIMING" + RISK = "RISK" + GROUPING = "GROUPING" + def __init__(self): # noqa: E501 + """TapiTopologyRuleType - a model defined in Swagger + + """ + self.swagger_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRuleType': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RuleType of this TapiTopologyRuleType. # noqa: E501 + :rtype: TapiTopologyRuleType + """ + return util.deserialize_model(dikt, cls) diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..1ce9e5fa2ada44897b31ff611934196d26a1179e --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_rule_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_rule import TapiTopologyRule # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyRuleWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, rule: TapiTopologyRule=None): # noqa: E501 + """TapiTopologyRuleWrapper - a model defined in Swagger + + :param rule: The rule of this TapiTopologyRuleWrapper. # noqa: E501 + :type rule: TapiTopologyRule + """ + self.swagger_types = { + 'rule': TapiTopologyRule + } + + self.attribute_map = { + 'rule': 'rule' + } + self._rule = rule + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyRuleWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.RuleWrapper of this TapiTopologyRuleWrapper. # noqa: E501 + :rtype: TapiTopologyRuleWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def rule(self) -> TapiTopologyRule: + """Gets the rule of this TapiTopologyRuleWrapper. + + + :return: The rule of this TapiTopologyRuleWrapper. + :rtype: TapiTopologyRule + """ + return self._rule + + @rule.setter + def rule(self, rule: TapiTopologyRule): + """Sets the rule of this TapiTopologyRuleWrapper. + + + :param rule: The rule of this TapiTopologyRuleWrapper. + :type rule: TapiTopologyRule + """ + + self._rule = rule diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule.py new file mode 100644 index 0000000000000000000000000000000000000000..a7faecd16ebe8be8ed974a565d1c4efd79615a05 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule.py @@ -0,0 +1,148 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologySignalPropertyRule(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, number_of_signal_values: int=None, applicable_signal_value: List[str]=None, signal_property_value_rule: str=None, signal_property_name: str=None): # noqa: E501 + """TapiTopologySignalPropertyRule - a model defined in Swagger + + :param number_of_signal_values: The number_of_signal_values of this TapiTopologySignalPropertyRule. # noqa: E501 + :type number_of_signal_values: int + :param applicable_signal_value: The applicable_signal_value of this TapiTopologySignalPropertyRule. # noqa: E501 + :type applicable_signal_value: List[str] + :param signal_property_value_rule: The signal_property_value_rule of this TapiTopologySignalPropertyRule. # noqa: E501 + :type signal_property_value_rule: str + :param signal_property_name: The signal_property_name of this TapiTopologySignalPropertyRule. # noqa: E501 + :type signal_property_name: str + """ + self.swagger_types = { + 'number_of_signal_values': int, + 'applicable_signal_value': List[str], + 'signal_property_value_rule': str, + 'signal_property_name': str + } + + self.attribute_map = { + 'number_of_signal_values': 'number-of-signal-values', + 'applicable_signal_value': 'applicable-signal-value', + 'signal_property_value_rule': 'signal-property-value-rule', + 'signal_property_name': 'signal-property-name' + } + self._number_of_signal_values = number_of_signal_values + self._applicable_signal_value = applicable_signal_value + self._signal_property_value_rule = signal_property_value_rule + self._signal_property_name = signal_property_name + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologySignalPropertyRule': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.SignalPropertyRule of this TapiTopologySignalPropertyRule. # noqa: E501 + :rtype: TapiTopologySignalPropertyRule + """ + return util.deserialize_model(dikt, cls) + + @property + def number_of_signal_values(self) -> int: + """Gets the number_of_signal_values of this TapiTopologySignalPropertyRule. + + The number of instances of this specific property that can be supported by the group. # noqa: E501 + + :return: The number_of_signal_values of this TapiTopologySignalPropertyRule. + :rtype: int + """ + return self._number_of_signal_values + + @number_of_signal_values.setter + def number_of_signal_values(self, number_of_signal_values: int): + """Sets the number_of_signal_values of this TapiTopologySignalPropertyRule. + + The number of instances of this specific property that can be supported by the group. # noqa: E501 + + :param number_of_signal_values: The number_of_signal_values of this TapiTopologySignalPropertyRule. + :type number_of_signal_values: int + """ + + self._number_of_signal_values = number_of_signal_values + + @property + def applicable_signal_value(self) -> List[str]: + """Gets the applicable_signal_value of this TapiTopologySignalPropertyRule. + + Specific values of the signal property to which the rule applies. # noqa: E501 + + :return: The applicable_signal_value of this TapiTopologySignalPropertyRule. + :rtype: List[str] + """ + return self._applicable_signal_value + + @applicable_signal_value.setter + def applicable_signal_value(self, applicable_signal_value: List[str]): + """Sets the applicable_signal_value of this TapiTopologySignalPropertyRule. + + Specific values of the signal property to which the rule applies. # noqa: E501 + + :param applicable_signal_value: The applicable_signal_value of this TapiTopologySignalPropertyRule. + :type applicable_signal_value: List[str] + """ + + self._applicable_signal_value = applicable_signal_value + + @property + def signal_property_value_rule(self) -> str: + """Gets the signal_property_value_rule of this TapiTopologySignalPropertyRule. + + Indicates how the signal properties should be accounted for. # noqa: E501 + + :return: The signal_property_value_rule of this TapiTopologySignalPropertyRule. + :rtype: str + """ + return self._signal_property_value_rule + + @signal_property_value_rule.setter + def signal_property_value_rule(self, signal_property_value_rule: str): + """Sets the signal_property_value_rule of this TapiTopologySignalPropertyRule. + + Indicates how the signal properties should be accounted for. # noqa: E501 + + :param signal_property_value_rule: The signal_property_value_rule of this TapiTopologySignalPropertyRule. + :type signal_property_value_rule: str + """ + + self._signal_property_value_rule = signal_property_value_rule + + @property + def signal_property_name(self) -> str: + """Gets the signal_property_name of this TapiTopologySignalPropertyRule. + + The name of the signal property to which the rule applies. # noqa: E501 + + :return: The signal_property_name of this TapiTopologySignalPropertyRule. + :rtype: str + """ + return self._signal_property_name + + @signal_property_name.setter + def signal_property_name(self, signal_property_name: str): + """Sets the signal_property_name of this TapiTopologySignalPropertyRule. + + The name of the signal property to which the rule applies. # noqa: E501 + + :param signal_property_name: The signal_property_name of this TapiTopologySignalPropertyRule. + :type signal_property_name: str + """ + + self._signal_property_name = signal_property_name diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..a6553cbd1a1ecfbefa77f9ef95e870709656ca5d --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_signal_property_rule_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_signal_property_rule import TapiTopologySignalPropertyRule # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologySignalPropertyRuleWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, signal_property: TapiTopologySignalPropertyRule=None): # noqa: E501 + """TapiTopologySignalPropertyRuleWrapper - a model defined in Swagger + + :param signal_property: The signal_property of this TapiTopologySignalPropertyRuleWrapper. # noqa: E501 + :type signal_property: TapiTopologySignalPropertyRule + """ + self.swagger_types = { + 'signal_property': TapiTopologySignalPropertyRule + } + + self.attribute_map = { + 'signal_property': 'signal-property' + } + self._signal_property = signal_property + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologySignalPropertyRuleWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.SignalPropertyRuleWrapper of this TapiTopologySignalPropertyRuleWrapper. # noqa: E501 + :rtype: TapiTopologySignalPropertyRuleWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def signal_property(self) -> TapiTopologySignalPropertyRule: + """Gets the signal_property of this TapiTopologySignalPropertyRuleWrapper. + + + :return: The signal_property of this TapiTopologySignalPropertyRuleWrapper. + :rtype: TapiTopologySignalPropertyRule + """ + return self._signal_property + + @signal_property.setter + def signal_property(self, signal_property: TapiTopologySignalPropertyRule): + """Sets the signal_property of this TapiTopologySignalPropertyRuleWrapper. + + + :param signal_property: The signal_property of this TapiTopologySignalPropertyRuleWrapper. + :type signal_property: TapiTopologySignalPropertyRule + """ + + self._signal_property = signal_property diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..4cbfa914c30ce5d536c239f99b26f76e63f7679a --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology.py @@ -0,0 +1,181 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_topology_link import TapiTopologyLink # noqa: F401,E501 +from tapi_server.models.tapi_topology_node import TapiTopologyNode # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopology(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, name: List[TapiCommonNameAndValue]=None, uuid: str=None, layer_protocol_name: List[TapiCommonLayerProtocolName]=None, link: List[TapiTopologyLink]=None, node: List[TapiTopologyNode]=None): # noqa: E501 + """TapiTopologyTopology - a model defined in Swagger + + :param name: The name of this TapiTopologyTopology. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyTopology. # noqa: E501 + :type uuid: str + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyTopology. # noqa: E501 + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + :param link: The link of this TapiTopologyTopology. # noqa: E501 + :type link: List[TapiTopologyLink] + :param node: The node of this TapiTopologyTopology. # noqa: E501 + :type node: List[TapiTopologyNode] + """ + self.swagger_types = { + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'layer_protocol_name': List[TapiCommonLayerProtocolName], + 'link': List[TapiTopologyLink], + 'node': List[TapiTopologyNode] + } + + self.attribute_map = { + 'name': 'name', + 'uuid': 'uuid', + 'layer_protocol_name': 'layer-protocol-name', + 'link': 'link', + 'node': 'node' + } + self._name = name + self._uuid = uuid + self._layer_protocol_name = layer_protocol_name + self._link = link + self._node = node + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopology': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.Topology of this TapiTopologyTopology. # noqa: E501 + :rtype: TapiTopologyTopology + """ + return util.deserialize_model(dikt, cls) + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyTopology. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyTopology. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyTopology. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyTopology. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyTopology. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyTopology. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyTopology. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyTopology. + :type uuid: str + """ + + self._uuid = uuid + + @property + def layer_protocol_name(self) -> List[TapiCommonLayerProtocolName]: + """Gets the layer_protocol_name of this TapiTopologyTopology. + + none # noqa: E501 + + :return: The layer_protocol_name of this TapiTopologyTopology. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: List[TapiCommonLayerProtocolName]): + """Sets the layer_protocol_name of this TapiTopologyTopology. + + none # noqa: E501 + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyTopology. + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def link(self) -> List[TapiTopologyLink]: + """Gets the link of this TapiTopologyTopology. + + none # noqa: E501 + + :return: The link of this TapiTopologyTopology. + :rtype: List[TapiTopologyLink] + """ + return self._link + + @link.setter + def link(self, link: List[TapiTopologyLink]): + """Sets the link of this TapiTopologyTopology. + + none # noqa: E501 + + :param link: The link of this TapiTopologyTopology. + :type link: List[TapiTopologyLink] + """ + + self._link = link + + @property + def node(self) -> List[TapiTopologyNode]: + """Gets the node of this TapiTopologyTopology. + + none # noqa: E501 + + :return: The node of this TapiTopologyTopology. + :rtype: List[TapiTopologyNode] + """ + return self._node + + @node.setter + def node(self, node: List[TapiTopologyNode]): + """Sets the node of this TapiTopologyTopology. + + none # noqa: E501 + + :param node: The node of this TapiTopologyTopology. + :type node: List[TapiTopologyNode] + """ + + self._node = node diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context.py new file mode 100644 index 0000000000000000000000000000000000000000..d4912545297faa3503d7cef12e456c7ed744e7ab --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_network_topology_service import TapiTopologyNetworkTopologyService # noqa: F401,E501 +from tapi_server.models.tapi_topology_topology import TapiTopologyTopology # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyContext(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, nw_topology_service: TapiTopologyNetworkTopologyService=None, topology: List[TapiTopologyTopology]=None): # noqa: E501 + """TapiTopologyTopologyContext - a model defined in Swagger + + :param nw_topology_service: The nw_topology_service of this TapiTopologyTopologyContext. # noqa: E501 + :type nw_topology_service: TapiTopologyNetworkTopologyService + :param topology: The topology of this TapiTopologyTopologyContext. # noqa: E501 + :type topology: List[TapiTopologyTopology] + """ + self.swagger_types = { + 'nw_topology_service': TapiTopologyNetworkTopologyService, + 'topology': List[TapiTopologyTopology] + } + + self.attribute_map = { + 'nw_topology_service': 'nw-topology-service', + 'topology': 'topology' + } + self._nw_topology_service = nw_topology_service + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyContext': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TopologyContext of this TapiTopologyTopologyContext. # noqa: E501 + :rtype: TapiTopologyTopologyContext + """ + return util.deserialize_model(dikt, cls) + + @property + def nw_topology_service(self) -> TapiTopologyNetworkTopologyService: + """Gets the nw_topology_service of this TapiTopologyTopologyContext. + + + :return: The nw_topology_service of this TapiTopologyTopologyContext. + :rtype: TapiTopologyNetworkTopologyService + """ + return self._nw_topology_service + + @nw_topology_service.setter + def nw_topology_service(self, nw_topology_service: TapiTopologyNetworkTopologyService): + """Sets the nw_topology_service of this TapiTopologyTopologyContext. + + + :param nw_topology_service: The nw_topology_service of this TapiTopologyTopologyContext. + :type nw_topology_service: TapiTopologyNetworkTopologyService + """ + + self._nw_topology_service = nw_topology_service + + @property + def topology(self) -> List[TapiTopologyTopology]: + """Gets the topology of this TapiTopologyTopologyContext. + + none # noqa: E501 + + :return: The topology of this TapiTopologyTopologyContext. + :rtype: List[TapiTopologyTopology] + """ + return self._topology + + @topology.setter + def topology(self, topology: List[TapiTopologyTopology]): + """Sets the topology of this TapiTopologyTopologyContext. + + none # noqa: E501 + + :param topology: The topology of this TapiTopologyTopologyContext. + :type topology: List[TapiTopologyTopology] + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..08c38f43433d025171c10c7fc7fb9e902e643119 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_context_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_context import TapiTopologyTopologyContext # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyContextWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, tapi_topologytopology_context: TapiTopologyTopologyContext=None): # noqa: E501 + """TapiTopologyTopologyContextWrapper - a model defined in Swagger + + :param tapi_topologytopology_context: The tapi_topologytopology_context of this TapiTopologyTopologyContextWrapper. # noqa: E501 + :type tapi_topologytopology_context: TapiTopologyTopologyContext + """ + self.swagger_types = { + 'tapi_topologytopology_context': TapiTopologyTopologyContext + } + + self.attribute_map = { + 'tapi_topologytopology_context': 'tapi-topology:topology-context' + } + self._tapi_topologytopology_context = tapi_topologytopology_context + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyContextWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TopologyContextWrapper of this TapiTopologyTopologyContextWrapper. # noqa: E501 + :rtype: TapiTopologyTopologyContextWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def tapi_topologytopology_context(self) -> TapiTopologyTopologyContext: + """Gets the tapi_topologytopology_context of this TapiTopologyTopologyContextWrapper. + + + :return: The tapi_topologytopology_context of this TapiTopologyTopologyContextWrapper. + :rtype: TapiTopologyTopologyContext + """ + return self._tapi_topologytopology_context + + @tapi_topologytopology_context.setter + def tapi_topologytopology_context(self, tapi_topologytopology_context: TapiTopologyTopologyContext): + """Sets the tapi_topologytopology_context of this TapiTopologyTopologyContextWrapper. + + + :param tapi_topologytopology_context: The tapi_topologytopology_context of this TapiTopologyTopologyContextWrapper. + :type tapi_topologytopology_context: TapiTopologyTopologyContext + """ + + self._tapi_topologytopology_context = tapi_topologytopology_context diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node.py new file mode 100644 index 0000000000000000000000000000000000000000..e804dab5ec586fade93a476114474305339914dc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node.py @@ -0,0 +1,602 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_common_admin_state_pac import TapiCommonAdminStatePac # noqa: F401,E501 +from tapi_server.models.tapi_common_administrative_state import TapiCommonAdministrativeState # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity import TapiCommonCapacity # noqa: F401,E501 +from tapi_server.models.tapi_common_capacity_pac import TapiCommonCapacityPac # noqa: F401,E501 +from tapi_server.models.tapi_common_global_class import TapiCommonGlobalClass # noqa: F401,E501 +from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName # noqa: F401,E501 +from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState # noqa: F401,E501 +from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue # noqa: F401,E501 +from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState # noqa: F401,E501 +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_edge_point_ref import TapiTopologyNodeEdgePointRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_owned_node_edge_point import TapiTopologyNodeOwnedNodeEdgePoint # noqa: F401,E501 +from tapi_server.models.tapi_topology_node_rule_group import TapiTopologyNodeRuleGroup # noqa: F401,E501 +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_cost_pac import TapiTopologyTransferCostPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_integrity_pac import TapiTopologyTransferIntegrityPac # noqa: F401,E501 +from tapi_server.models.tapi_topology_transfer_timing_pac import TapiTopologyTransferTimingPac # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyNode(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, available_capacity: TapiCommonCapacity=None, total_potential_capacity: TapiCommonCapacity=None, name: List[TapiCommonNameAndValue]=None, uuid: str=None, cost_characteristic: List[TapiTopologyCostCharacteristic]=None, error_characteristic: str=None, unavailable_time_characteristic: str=None, server_integrity_process_characteristic: str=None, delivery_order_characteristic: str=None, repeat_delivery_characteristic: str=None, loss_characteristic: str=None, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None, operational_state: TapiCommonOperationalState=None, lifecycle_state: TapiCommonLifecycleState=None, administrative_state: TapiCommonAdministrativeState=None, layer_protocol_name: List[TapiCommonLayerProtocolName]=None, encap_topology: TapiTopologyTopologyRef=None, owned_node_edge_point: List[TapiTopologyNodeOwnedNodeEdgePoint]=None, node_rule_group: List[TapiTopologyNodeRuleGroup]=None, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]=None): # noqa: E501 + """TapiTopologyTopologyNode - a model defined in Swagger + + :param available_capacity: The available_capacity of this TapiTopologyTopologyNode. # noqa: E501 + :type available_capacity: TapiCommonCapacity + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyTopologyNode. # noqa: E501 + :type total_potential_capacity: TapiCommonCapacity + :param name: The name of this TapiTopologyTopologyNode. # noqa: E501 + :type name: List[TapiCommonNameAndValue] + :param uuid: The uuid of this TapiTopologyTopologyNode. # noqa: E501 + :type uuid: str + :param cost_characteristic: The cost_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + :param error_characteristic: The error_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type error_characteristic: str + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type unavailable_time_characteristic: str + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type server_integrity_process_characteristic: str + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type delivery_order_characteristic: str + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type repeat_delivery_characteristic: str + :param loss_characteristic: The loss_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type loss_characteristic: str + :param latency_characteristic: The latency_characteristic of this TapiTopologyTopologyNode. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + :param operational_state: The operational_state of this TapiTopologyTopologyNode. # noqa: E501 + :type operational_state: TapiCommonOperationalState + :param lifecycle_state: The lifecycle_state of this TapiTopologyTopologyNode. # noqa: E501 + :type lifecycle_state: TapiCommonLifecycleState + :param administrative_state: The administrative_state of this TapiTopologyTopologyNode. # noqa: E501 + :type administrative_state: TapiCommonAdministrativeState + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyTopologyNode. # noqa: E501 + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + :param encap_topology: The encap_topology of this TapiTopologyTopologyNode. # noqa: E501 + :type encap_topology: TapiTopologyTopologyRef + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyTopologyNode. # noqa: E501 + :type owned_node_edge_point: List[TapiTopologyNodeOwnedNodeEdgePoint] + :param node_rule_group: The node_rule_group of this TapiTopologyTopologyNode. # noqa: E501 + :type node_rule_group: List[TapiTopologyNodeRuleGroup] + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyTopologyNode. # noqa: E501 + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + self.swagger_types = { + 'available_capacity': TapiCommonCapacity, + 'total_potential_capacity': TapiCommonCapacity, + 'name': List[TapiCommonNameAndValue], + 'uuid': str, + 'cost_characteristic': List[TapiTopologyCostCharacteristic], + 'error_characteristic': str, + 'unavailable_time_characteristic': str, + 'server_integrity_process_characteristic': str, + 'delivery_order_characteristic': str, + 'repeat_delivery_characteristic': str, + 'loss_characteristic': str, + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic], + 'operational_state': TapiCommonOperationalState, + 'lifecycle_state': TapiCommonLifecycleState, + 'administrative_state': TapiCommonAdministrativeState, + 'layer_protocol_name': List[TapiCommonLayerProtocolName], + 'encap_topology': TapiTopologyTopologyRef, + 'owned_node_edge_point': List[TapiTopologyNodeOwnedNodeEdgePoint], + 'node_rule_group': List[TapiTopologyNodeRuleGroup], + 'aggregated_node_edge_point': List[TapiTopologyNodeEdgePointRef] + } + + self.attribute_map = { + 'available_capacity': 'available-capacity', + 'total_potential_capacity': 'total-potential-capacity', + 'name': 'name', + 'uuid': 'uuid', + 'cost_characteristic': 'cost-characteristic', + 'error_characteristic': 'error-characteristic', + 'unavailable_time_characteristic': 'unavailable-time-characteristic', + 'server_integrity_process_characteristic': 'server-integrity-process-characteristic', + 'delivery_order_characteristic': 'delivery-order-characteristic', + 'repeat_delivery_characteristic': 'repeat-delivery-characteristic', + 'loss_characteristic': 'loss-characteristic', + 'latency_characteristic': 'latency-characteristic', + 'operational_state': 'operational-state', + 'lifecycle_state': 'lifecycle-state', + 'administrative_state': 'administrative-state', + 'layer_protocol_name': 'layer-protocol-name', + 'encap_topology': 'encap-topology', + 'owned_node_edge_point': 'owned-node-edge-point', + 'node_rule_group': 'node-rule-group', + 'aggregated_node_edge_point': 'aggregated-node-edge-point' + } + self._available_capacity = available_capacity + self._total_potential_capacity = total_potential_capacity + self._name = name + self._uuid = uuid + self._cost_characteristic = cost_characteristic + self._error_characteristic = error_characteristic + self._unavailable_time_characteristic = unavailable_time_characteristic + self._server_integrity_process_characteristic = server_integrity_process_characteristic + self._delivery_order_characteristic = delivery_order_characteristic + self._repeat_delivery_characteristic = repeat_delivery_characteristic + self._loss_characteristic = loss_characteristic + self._latency_characteristic = latency_characteristic + self._operational_state = operational_state + self._lifecycle_state = lifecycle_state + self._administrative_state = administrative_state + self._layer_protocol_name = layer_protocol_name + self._encap_topology = encap_topology + self._owned_node_edge_point = owned_node_edge_point + self._node_rule_group = node_rule_group + self._aggregated_node_edge_point = aggregated_node_edge_point + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyNode': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.topology.Node of this TapiTopologyTopologyNode. # noqa: E501 + :rtype: TapiTopologyTopologyNode + """ + return util.deserialize_model(dikt, cls) + + @property + def available_capacity(self) -> TapiCommonCapacity: + """Gets the available_capacity of this TapiTopologyTopologyNode. + + + :return: The available_capacity of this TapiTopologyTopologyNode. + :rtype: TapiCommonCapacity + """ + return self._available_capacity + + @available_capacity.setter + def available_capacity(self, available_capacity: TapiCommonCapacity): + """Sets the available_capacity of this TapiTopologyTopologyNode. + + + :param available_capacity: The available_capacity of this TapiTopologyTopologyNode. + :type available_capacity: TapiCommonCapacity + """ + + self._available_capacity = available_capacity + + @property + def total_potential_capacity(self) -> TapiCommonCapacity: + """Gets the total_potential_capacity of this TapiTopologyTopologyNode. + + + :return: The total_potential_capacity of this TapiTopologyTopologyNode. + :rtype: TapiCommonCapacity + """ + return self._total_potential_capacity + + @total_potential_capacity.setter + def total_potential_capacity(self, total_potential_capacity: TapiCommonCapacity): + """Sets the total_potential_capacity of this TapiTopologyTopologyNode. + + + :param total_potential_capacity: The total_potential_capacity of this TapiTopologyTopologyNode. + :type total_potential_capacity: TapiCommonCapacity + """ + + self._total_potential_capacity = total_potential_capacity + + @property + def name(self) -> List[TapiCommonNameAndValue]: + """Gets the name of this TapiTopologyTopologyNode. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :return: The name of this TapiTopologyTopologyNode. + :rtype: List[TapiCommonNameAndValue] + """ + return self._name + + @name.setter + def name(self, name: List[TapiCommonNameAndValue]): + """Sets the name of this TapiTopologyTopologyNode. + + List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity. # noqa: E501 + + :param name: The name of this TapiTopologyTopologyNode. + :type name: List[TapiCommonNameAndValue] + """ + + self._name = name + + @property + def uuid(self) -> str: + """Gets the uuid of this TapiTopologyTopologyNode. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :return: The uuid of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._uuid + + @uuid.setter + def uuid(self, uuid: str): + """Sets the uuid of this TapiTopologyTopologyNode. + + UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable. An UUID carries no semantics with respect to the purpose or state of the entity. UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters. Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6 # noqa: E501 + + :param uuid: The uuid of this TapiTopologyTopologyNode. + :type uuid: str + """ + + self._uuid = uuid + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyTopologyNode. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyTopologyNode. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyTopologyNode. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyTopologyNode. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic + + @property + def error_characteristic(self) -> str: + """Gets the error_characteristic of this TapiTopologyTopologyNode. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :return: The error_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._error_characteristic + + @error_characteristic.setter + def error_characteristic(self, error_characteristic: str): + """Sets the error_characteristic of this TapiTopologyTopologyNode. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :param error_characteristic: The error_characteristic of this TapiTopologyTopologyNode. + :type error_characteristic: str + """ + + self._error_characteristic = error_characteristic + + @property + def unavailable_time_characteristic(self) -> str: + """Gets the unavailable_time_characteristic of this TapiTopologyTopologyNode. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :return: The unavailable_time_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._unavailable_time_characteristic + + @unavailable_time_characteristic.setter + def unavailable_time_characteristic(self, unavailable_time_characteristic: str): + """Sets the unavailable_time_characteristic of this TapiTopologyTopologyNode. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyTopologyNode. + :type unavailable_time_characteristic: str + """ + + self._unavailable_time_characteristic = unavailable_time_characteristic + + @property + def server_integrity_process_characteristic(self) -> str: + """Gets the server_integrity_process_characteristic of this TapiTopologyTopologyNode. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :return: The server_integrity_process_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._server_integrity_process_characteristic + + @server_integrity_process_characteristic.setter + def server_integrity_process_characteristic(self, server_integrity_process_characteristic: str): + """Sets the server_integrity_process_characteristic of this TapiTopologyTopologyNode. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyTopologyNode. + :type server_integrity_process_characteristic: str + """ + + self._server_integrity_process_characteristic = server_integrity_process_characteristic + + @property + def delivery_order_characteristic(self) -> str: + """Gets the delivery_order_characteristic of this TapiTopologyTopologyNode. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :return: The delivery_order_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._delivery_order_characteristic + + @delivery_order_characteristic.setter + def delivery_order_characteristic(self, delivery_order_characteristic: str): + """Sets the delivery_order_characteristic of this TapiTopologyTopologyNode. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyTopologyNode. + :type delivery_order_characteristic: str + """ + + self._delivery_order_characteristic = delivery_order_characteristic + + @property + def repeat_delivery_characteristic(self) -> str: + """Gets the repeat_delivery_characteristic of this TapiTopologyTopologyNode. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :return: The repeat_delivery_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._repeat_delivery_characteristic + + @repeat_delivery_characteristic.setter + def repeat_delivery_characteristic(self, repeat_delivery_characteristic: str): + """Sets the repeat_delivery_characteristic of this TapiTopologyTopologyNode. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyTopologyNode. + :type repeat_delivery_characteristic: str + """ + + self._repeat_delivery_characteristic = repeat_delivery_characteristic + + @property + def loss_characteristic(self) -> str: + """Gets the loss_characteristic of this TapiTopologyTopologyNode. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :return: The loss_characteristic of this TapiTopologyTopologyNode. + :rtype: str + """ + return self._loss_characteristic + + @loss_characteristic.setter + def loss_characteristic(self, loss_characteristic: str): + """Sets the loss_characteristic of this TapiTopologyTopologyNode. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :param loss_characteristic: The loss_characteristic of this TapiTopologyTopologyNode. + :type loss_characteristic: str + """ + + self._loss_characteristic = loss_characteristic + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyTopologyNode. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyTopologyNode. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyTopologyNode. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyTopologyNode. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic + + @property + def operational_state(self) -> TapiCommonOperationalState: + """Gets the operational_state of this TapiTopologyTopologyNode. + + + :return: The operational_state of this TapiTopologyTopologyNode. + :rtype: TapiCommonOperationalState + """ + return self._operational_state + + @operational_state.setter + def operational_state(self, operational_state: TapiCommonOperationalState): + """Sets the operational_state of this TapiTopologyTopologyNode. + + + :param operational_state: The operational_state of this TapiTopologyTopologyNode. + :type operational_state: TapiCommonOperationalState + """ + + self._operational_state = operational_state + + @property + def lifecycle_state(self) -> TapiCommonLifecycleState: + """Gets the lifecycle_state of this TapiTopologyTopologyNode. + + + :return: The lifecycle_state of this TapiTopologyTopologyNode. + :rtype: TapiCommonLifecycleState + """ + return self._lifecycle_state + + @lifecycle_state.setter + def lifecycle_state(self, lifecycle_state: TapiCommonLifecycleState): + """Sets the lifecycle_state of this TapiTopologyTopologyNode. + + + :param lifecycle_state: The lifecycle_state of this TapiTopologyTopologyNode. + :type lifecycle_state: TapiCommonLifecycleState + """ + + self._lifecycle_state = lifecycle_state + + @property + def administrative_state(self) -> TapiCommonAdministrativeState: + """Gets the administrative_state of this TapiTopologyTopologyNode. + + + :return: The administrative_state of this TapiTopologyTopologyNode. + :rtype: TapiCommonAdministrativeState + """ + return self._administrative_state + + @administrative_state.setter + def administrative_state(self, administrative_state: TapiCommonAdministrativeState): + """Sets the administrative_state of this TapiTopologyTopologyNode. + + + :param administrative_state: The administrative_state of this TapiTopologyTopologyNode. + :type administrative_state: TapiCommonAdministrativeState + """ + + self._administrative_state = administrative_state + + @property + def layer_protocol_name(self) -> List[TapiCommonLayerProtocolName]: + """Gets the layer_protocol_name of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :return: The layer_protocol_name of this TapiTopologyTopologyNode. + :rtype: List[TapiCommonLayerProtocolName] + """ + return self._layer_protocol_name + + @layer_protocol_name.setter + def layer_protocol_name(self, layer_protocol_name: List[TapiCommonLayerProtocolName]): + """Sets the layer_protocol_name of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :param layer_protocol_name: The layer_protocol_name of this TapiTopologyTopologyNode. + :type layer_protocol_name: List[TapiCommonLayerProtocolName] + """ + + self._layer_protocol_name = layer_protocol_name + + @property + def encap_topology(self) -> TapiTopologyTopologyRef: + """Gets the encap_topology of this TapiTopologyTopologyNode. + + + :return: The encap_topology of this TapiTopologyTopologyNode. + :rtype: TapiTopologyTopologyRef + """ + return self._encap_topology + + @encap_topology.setter + def encap_topology(self, encap_topology: TapiTopologyTopologyRef): + """Sets the encap_topology of this TapiTopologyTopologyNode. + + + :param encap_topology: The encap_topology of this TapiTopologyTopologyNode. + :type encap_topology: TapiTopologyTopologyRef + """ + + self._encap_topology = encap_topology + + @property + def owned_node_edge_point(self) -> List[TapiTopologyNodeOwnedNodeEdgePoint]: + """Gets the owned_node_edge_point of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :return: The owned_node_edge_point of this TapiTopologyTopologyNode. + :rtype: List[TapiTopologyNodeOwnedNodeEdgePoint] + """ + return self._owned_node_edge_point + + @owned_node_edge_point.setter + def owned_node_edge_point(self, owned_node_edge_point: List[TapiTopologyNodeOwnedNodeEdgePoint]): + """Sets the owned_node_edge_point of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :param owned_node_edge_point: The owned_node_edge_point of this TapiTopologyTopologyNode. + :type owned_node_edge_point: List[TapiTopologyNodeOwnedNodeEdgePoint] + """ + + self._owned_node_edge_point = owned_node_edge_point + + @property + def node_rule_group(self) -> List[TapiTopologyNodeRuleGroup]: + """Gets the node_rule_group of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :return: The node_rule_group of this TapiTopologyTopologyNode. + :rtype: List[TapiTopologyNodeRuleGroup] + """ + return self._node_rule_group + + @node_rule_group.setter + def node_rule_group(self, node_rule_group: List[TapiTopologyNodeRuleGroup]): + """Sets the node_rule_group of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :param node_rule_group: The node_rule_group of this TapiTopologyTopologyNode. + :type node_rule_group: List[TapiTopologyNodeRuleGroup] + """ + + self._node_rule_group = node_rule_group + + @property + def aggregated_node_edge_point(self) -> List[TapiTopologyNodeEdgePointRef]: + """Gets the aggregated_node_edge_point of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :return: The aggregated_node_edge_point of this TapiTopologyTopologyNode. + :rtype: List[TapiTopologyNodeEdgePointRef] + """ + return self._aggregated_node_edge_point + + @aggregated_node_edge_point.setter + def aggregated_node_edge_point(self, aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef]): + """Sets the aggregated_node_edge_point of this TapiTopologyTopologyNode. + + none # noqa: E501 + + :param aggregated_node_edge_point: The aggregated_node_edge_point of this TapiTopologyTopologyNode. + :type aggregated_node_edge_point: List[TapiTopologyNodeEdgePointRef] + """ + + self._aggregated_node_edge_point = aggregated_node_edge_point diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..0c868058b3b29a86d04842df89ac0ccf44ff8ad1 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_node_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_node import TapiTopologyTopologyNode # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyNodeWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, node: TapiTopologyTopologyNode=None): # noqa: E501 + """TapiTopologyTopologyNodeWrapper - a model defined in Swagger + + :param node: The node of this TapiTopologyTopologyNodeWrapper. # noqa: E501 + :type node: TapiTopologyTopologyNode + """ + self.swagger_types = { + 'node': TapiTopologyTopologyNode + } + + self.attribute_map = { + 'node': 'node' + } + self._node = node + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyNodeWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.topology.NodeWrapper of this TapiTopologyTopologyNodeWrapper. # noqa: E501 + :rtype: TapiTopologyTopologyNodeWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def node(self) -> TapiTopologyTopologyNode: + """Gets the node of this TapiTopologyTopologyNodeWrapper. + + + :return: The node of this TapiTopologyTopologyNodeWrapper. + :rtype: TapiTopologyTopologyNode + """ + return self._node + + @node.setter + def node(self, node: TapiTopologyTopologyNode): + """Sets the node of this TapiTopologyTopologyNodeWrapper. + + + :param node: The node of this TapiTopologyTopologyNodeWrapper. + :type node: TapiTopologyTopologyNode + """ + + self._node = node diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref.py new file mode 100644 index 0000000000000000000000000000000000000000..21a7b2d61775862dac7767ca6378f291f7494053 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyTopologyRef(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology_uuid: str=None): # noqa: E501 + """TapiTopologyTopologyRef - a model defined in Swagger + + :param topology_uuid: The topology_uuid of this TapiTopologyTopologyRef. # noqa: E501 + :type topology_uuid: str + """ + self.swagger_types = { + 'topology_uuid': str + } + + self.attribute_map = { + 'topology_uuid': 'topology-uuid' + } + self._topology_uuid = topology_uuid + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyRef': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TopologyRef of this TapiTopologyTopologyRef. # noqa: E501 + :rtype: TapiTopologyTopologyRef + """ + return util.deserialize_model(dikt, cls) + + @property + def topology_uuid(self) -> str: + """Gets the topology_uuid of this TapiTopologyTopologyRef. + + none # noqa: E501 + + :return: The topology_uuid of this TapiTopologyTopologyRef. + :rtype: str + """ + return self._topology_uuid + + @topology_uuid.setter + def topology_uuid(self, topology_uuid: str): + """Sets the topology_uuid of this TapiTopologyTopologyRef. + + none # noqa: E501 + + :param topology_uuid: The topology_uuid of this TapiTopologyTopologyRef. + :type topology_uuid: str + """ + + self._topology_uuid = topology_uuid diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..7e4c3259c120c96f8064a612a2f09a0003346f29 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_ref_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology_ref import TapiTopologyTopologyRef # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyRefWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology: TapiTopologyTopologyRef=None): # noqa: E501 + """TapiTopologyTopologyRefWrapper - a model defined in Swagger + + :param topology: The topology of this TapiTopologyTopologyRefWrapper. # noqa: E501 + :type topology: TapiTopologyTopologyRef + """ + self.swagger_types = { + 'topology': TapiTopologyTopologyRef + } + + self.attribute_map = { + 'topology': 'topology' + } + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyRefWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TopologyRefWrapper of this TapiTopologyTopologyRefWrapper. # noqa: E501 + :rtype: TapiTopologyTopologyRefWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def topology(self) -> TapiTopologyTopologyRef: + """Gets the topology of this TapiTopologyTopologyRefWrapper. + + + :return: The topology of this TapiTopologyTopologyRefWrapper. + :rtype: TapiTopologyTopologyRef + """ + return self._topology + + @topology.setter + def topology(self, topology: TapiTopologyTopologyRef): + """Sets the topology of this TapiTopologyTopologyRefWrapper. + + + :param topology: The topology of this TapiTopologyTopologyRefWrapper. + :type topology: TapiTopologyTopologyRef + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..47908b0cc4ab2a0114d52a0c2d4b3df8ec66a5ee --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_topology_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_topology import TapiTopologyTopology # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTopologyWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, topology: TapiTopologyTopology=None): # noqa: E501 + """TapiTopologyTopologyWrapper - a model defined in Swagger + + :param topology: The topology of this TapiTopologyTopologyWrapper. # noqa: E501 + :type topology: TapiTopologyTopology + """ + self.swagger_types = { + 'topology': TapiTopologyTopology + } + + self.attribute_map = { + 'topology': 'topology' + } + self._topology = topology + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTopologyWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TopologyWrapper of this TapiTopologyTopologyWrapper. # noqa: E501 + :rtype: TapiTopologyTopologyWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def topology(self) -> TapiTopologyTopology: + """Gets the topology of this TapiTopologyTopologyWrapper. + + + :return: The topology of this TapiTopologyTopologyWrapper. + :rtype: TapiTopologyTopology + """ + return self._topology + + @topology.setter + def topology(self, topology: TapiTopologyTopology): + """Sets the topology of this TapiTopologyTopologyWrapper. + + + :param topology: The topology of this TapiTopologyTopologyWrapper. + :type topology: TapiTopologyTopology + """ + + self._topology = topology diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_cost_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_cost_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..f868fd807b8c3dcc8674fdbd837b630312835400 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_cost_pac.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_cost_characteristic import TapiTopologyCostCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTransferCostPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, cost_characteristic: List[TapiTopologyCostCharacteristic]=None): # noqa: E501 + """TapiTopologyTransferCostPac - a model defined in Swagger + + :param cost_characteristic: The cost_characteristic of this TapiTopologyTransferCostPac. # noqa: E501 + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + self.swagger_types = { + 'cost_characteristic': List[TapiTopologyCostCharacteristic] + } + + self.attribute_map = { + 'cost_characteristic': 'cost-characteristic' + } + self._cost_characteristic = cost_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTransferCostPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TransferCostPac of this TapiTopologyTransferCostPac. # noqa: E501 + :rtype: TapiTopologyTransferCostPac + """ + return util.deserialize_model(dikt, cls) + + @property + def cost_characteristic(self) -> List[TapiTopologyCostCharacteristic]: + """Gets the cost_characteristic of this TapiTopologyTransferCostPac. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :return: The cost_characteristic of this TapiTopologyTransferCostPac. + :rtype: List[TapiTopologyCostCharacteristic] + """ + return self._cost_characteristic + + @cost_characteristic.setter + def cost_characteristic(self, cost_characteristic: List[TapiTopologyCostCharacteristic]): + """Sets the cost_characteristic of this TapiTopologyTransferCostPac. + + The list of costs where each cost relates to some aspect of the TopologicalEntity. # noqa: E501 + + :param cost_characteristic: The cost_characteristic of this TapiTopologyTransferCostPac. + :type cost_characteristic: List[TapiTopologyCostCharacteristic] + """ + + self._cost_characteristic = cost_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_integrity_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_integrity_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..47570f8728f8fa61b03effb3c5df688df7f7bdd9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_integrity_pac.py @@ -0,0 +1,204 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyTransferIntegrityPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, error_characteristic: str=None, unavailable_time_characteristic: str=None, server_integrity_process_characteristic: str=None, delivery_order_characteristic: str=None, repeat_delivery_characteristic: str=None, loss_characteristic: str=None): # noqa: E501 + """TapiTopologyTransferIntegrityPac - a model defined in Swagger + + :param error_characteristic: The error_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type error_characteristic: str + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type unavailable_time_characteristic: str + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type server_integrity_process_characteristic: str + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type delivery_order_characteristic: str + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type repeat_delivery_characteristic: str + :param loss_characteristic: The loss_characteristic of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :type loss_characteristic: str + """ + self.swagger_types = { + 'error_characteristic': str, + 'unavailable_time_characteristic': str, + 'server_integrity_process_characteristic': str, + 'delivery_order_characteristic': str, + 'repeat_delivery_characteristic': str, + 'loss_characteristic': str + } + + self.attribute_map = { + 'error_characteristic': 'error-characteristic', + 'unavailable_time_characteristic': 'unavailable-time-characteristic', + 'server_integrity_process_characteristic': 'server-integrity-process-characteristic', + 'delivery_order_characteristic': 'delivery-order-characteristic', + 'repeat_delivery_characteristic': 'repeat-delivery-characteristic', + 'loss_characteristic': 'loss-characteristic' + } + self._error_characteristic = error_characteristic + self._unavailable_time_characteristic = unavailable_time_characteristic + self._server_integrity_process_characteristic = server_integrity_process_characteristic + self._delivery_order_characteristic = delivery_order_characteristic + self._repeat_delivery_characteristic = repeat_delivery_characteristic + self._loss_characteristic = loss_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTransferIntegrityPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TransferIntegrityPac of this TapiTopologyTransferIntegrityPac. # noqa: E501 + :rtype: TapiTopologyTransferIntegrityPac + """ + return util.deserialize_model(dikt, cls) + + @property + def error_characteristic(self) -> str: + """Gets the error_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :return: The error_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._error_characteristic + + @error_characteristic.setter + def error_characteristic(self, error_characteristic: str): + """Sets the error_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the degree to which the signal propagated can be errored. Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded. # noqa: E501 + + :param error_characteristic: The error_characteristic of this TapiTopologyTransferIntegrityPac. + :type error_characteristic: str + """ + + self._error_characteristic = error_characteristic + + @property + def unavailable_time_characteristic(self) -> str: + """Gets the unavailable_time_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :return: The unavailable_time_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._unavailable_time_characteristic + + @unavailable_time_characteristic.setter + def unavailable_time_characteristic(self, unavailable_time_characteristic: str): + """Sets the unavailable_time_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the duration for which there may be no valid signal propagated. # noqa: E501 + + :param unavailable_time_characteristic: The unavailable_time_characteristic of this TapiTopologyTransferIntegrityPac. + :type unavailable_time_characteristic: str + """ + + self._unavailable_time_characteristic = unavailable_time_characteristic + + @property + def server_integrity_process_characteristic(self) -> str: + """Gets the server_integrity_process_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :return: The server_integrity_process_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._server_integrity_process_characteristic + + @server_integrity_process_characteristic.setter + def server_integrity_process_characteristic(self, server_integrity_process_characteristic: str): + """Sets the server_integrity_process_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the effect of any server integrity enhancement process on the characteristics of the TopologicalEntity. # noqa: E501 + + :param server_integrity_process_characteristic: The server_integrity_process_characteristic of this TapiTopologyTransferIntegrityPac. + :type server_integrity_process_characteristic: str + """ + + self._server_integrity_process_characteristic = server_integrity_process_characteristic + + @property + def delivery_order_characteristic(self) -> str: + """Gets the delivery_order_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :return: The delivery_order_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._delivery_order_characteristic + + @delivery_order_characteristic.setter + def delivery_order_characteristic(self, delivery_order_characteristic: str): + """Sets the delivery_order_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the degree to which packets will be delivered out of sequence. Does not apply to TDM as the TDM protocols maintain strict order. # noqa: E501 + + :param delivery_order_characteristic: The delivery_order_characteristic of this TapiTopologyTransferIntegrityPac. + :type delivery_order_characteristic: str + """ + + self._delivery_order_characteristic = delivery_order_characteristic + + @property + def repeat_delivery_characteristic(self) -> str: + """Gets the repeat_delivery_characteristic of this TapiTopologyTransferIntegrityPac. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :return: The repeat_delivery_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._repeat_delivery_characteristic + + @repeat_delivery_characteristic.setter + def repeat_delivery_characteristic(self, repeat_delivery_characteristic: str): + """Sets the repeat_delivery_characteristic of this TapiTopologyTransferIntegrityPac. + + Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay. # noqa: E501 + + :param repeat_delivery_characteristic: The repeat_delivery_characteristic of this TapiTopologyTransferIntegrityPac. + :type repeat_delivery_characteristic: str + """ + + self._repeat_delivery_characteristic = repeat_delivery_characteristic + + @property + def loss_characteristic(self) -> str: + """Gets the loss_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :return: The loss_characteristic of this TapiTopologyTransferIntegrityPac. + :rtype: str + """ + return self._loss_characteristic + + @loss_characteristic.setter + def loss_characteristic(self, loss_characteristic: str): + """Sets the loss_characteristic of this TapiTopologyTransferIntegrityPac. + + Describes the acceptable characteristic of lost packets where loss may result from discard due to errors or overflow. Applies to packet systems and not TDM (as for TDM errored signals are propagated unless grossly errored and overflow/underflow turns into timing slips). # noqa: E501 + + :param loss_characteristic: The loss_characteristic of this TapiTopologyTransferIntegrityPac. + :type loss_characteristic: str + """ + + self._loss_characteristic = loss_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_timing_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_timing_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..f980040c4f07ef66bc155bd4d2e87224b93c979f --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_transfer_timing_pac.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_latency_characteristic import TapiTopologyLatencyCharacteristic # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyTransferTimingPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]=None): # noqa: E501 + """TapiTopologyTransferTimingPac - a model defined in Swagger + + :param latency_characteristic: The latency_characteristic of this TapiTopologyTransferTimingPac. # noqa: E501 + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + self.swagger_types = { + 'latency_characteristic': List[TapiTopologyLatencyCharacteristic] + } + + self.attribute_map = { + 'latency_characteristic': 'latency-characteristic' + } + self._latency_characteristic = latency_characteristic + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyTransferTimingPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.TransferTimingPac of this TapiTopologyTransferTimingPac. # noqa: E501 + :rtype: TapiTopologyTransferTimingPac + """ + return util.deserialize_model(dikt, cls) + + @property + def latency_characteristic(self) -> List[TapiTopologyLatencyCharacteristic]: + """Gets the latency_characteristic of this TapiTopologyTransferTimingPac. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :return: The latency_characteristic of this TapiTopologyTransferTimingPac. + :rtype: List[TapiTopologyLatencyCharacteristic] + """ + return self._latency_characteristic + + @latency_characteristic.setter + def latency_characteristic(self, latency_characteristic: List[TapiTopologyLatencyCharacteristic]): + """Sets the latency_characteristic of this TapiTopologyTransferTimingPac. + + The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic. # noqa: E501 + + :param latency_characteristic: The latency_characteristic of this TapiTopologyTransferTimingPac. + :type latency_characteristic: List[TapiTopologyLatencyCharacteristic] + """ + + self._latency_characteristic = latency_characteristic diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism.py new file mode 100644 index 0000000000000000000000000000000000000000..4404a512f34a2341977ccd2223d28a386e6c42d9 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server import util + + +class TapiTopologyValidationMechanism(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, layer_protocol_adjacency_validated: str=None, validation_mechanism: str=None, validation_robustness: str=None): # noqa: E501 + """TapiTopologyValidationMechanism - a model defined in Swagger + + :param layer_protocol_adjacency_validated: The layer_protocol_adjacency_validated of this TapiTopologyValidationMechanism. # noqa: E501 + :type layer_protocol_adjacency_validated: str + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationMechanism. # noqa: E501 + :type validation_mechanism: str + :param validation_robustness: The validation_robustness of this TapiTopologyValidationMechanism. # noqa: E501 + :type validation_robustness: str + """ + self.swagger_types = { + 'layer_protocol_adjacency_validated': str, + 'validation_mechanism': str, + 'validation_robustness': str + } + + self.attribute_map = { + 'layer_protocol_adjacency_validated': 'layer-protocol-adjacency-validated', + 'validation_mechanism': 'validation-mechanism', + 'validation_robustness': 'validation-robustness' + } + self._layer_protocol_adjacency_validated = layer_protocol_adjacency_validated + self._validation_mechanism = validation_mechanism + self._validation_robustness = validation_robustness + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyValidationMechanism': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ValidationMechanism of this TapiTopologyValidationMechanism. # noqa: E501 + :rtype: TapiTopologyValidationMechanism + """ + return util.deserialize_model(dikt, cls) + + @property + def layer_protocol_adjacency_validated(self) -> str: + """Gets the layer_protocol_adjacency_validated of this TapiTopologyValidationMechanism. + + State of validatiion # noqa: E501 + + :return: The layer_protocol_adjacency_validated of this TapiTopologyValidationMechanism. + :rtype: str + """ + return self._layer_protocol_adjacency_validated + + @layer_protocol_adjacency_validated.setter + def layer_protocol_adjacency_validated(self, layer_protocol_adjacency_validated: str): + """Sets the layer_protocol_adjacency_validated of this TapiTopologyValidationMechanism. + + State of validatiion # noqa: E501 + + :param layer_protocol_adjacency_validated: The layer_protocol_adjacency_validated of this TapiTopologyValidationMechanism. + :type layer_protocol_adjacency_validated: str + """ + + self._layer_protocol_adjacency_validated = layer_protocol_adjacency_validated + + @property + def validation_mechanism(self) -> str: + """Gets the validation_mechanism of this TapiTopologyValidationMechanism. + + Name of mechanism used to validate adjacency # noqa: E501 + + :return: The validation_mechanism of this TapiTopologyValidationMechanism. + :rtype: str + """ + return self._validation_mechanism + + @validation_mechanism.setter + def validation_mechanism(self, validation_mechanism: str): + """Sets the validation_mechanism of this TapiTopologyValidationMechanism. + + Name of mechanism used to validate adjacency # noqa: E501 + + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationMechanism. + :type validation_mechanism: str + """ + + self._validation_mechanism = validation_mechanism + + @property + def validation_robustness(self) -> str: + """Gets the validation_robustness of this TapiTopologyValidationMechanism. + + Quality of validation (i.e. how likely is the stated validation to be invalid) # noqa: E501 + + :return: The validation_robustness of this TapiTopologyValidationMechanism. + :rtype: str + """ + return self._validation_robustness + + @validation_robustness.setter + def validation_robustness(self, validation_robustness: str): + """Sets the validation_robustness of this TapiTopologyValidationMechanism. + + Quality of validation (i.e. how likely is the stated validation to be invalid) # noqa: E501 + + :param validation_robustness: The validation_robustness of this TapiTopologyValidationMechanism. + :type validation_robustness: str + """ + + self._validation_robustness = validation_robustness diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism_wrapper.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..3038e8381ecfb71d98e2059fa79ac7d335c3221b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_mechanism_wrapper.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_validation_mechanism import TapiTopologyValidationMechanism # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyValidationMechanismWrapper(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, validation_mechanism: TapiTopologyValidationMechanism=None): # noqa: E501 + """TapiTopologyValidationMechanismWrapper - a model defined in Swagger + + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationMechanismWrapper. # noqa: E501 + :type validation_mechanism: TapiTopologyValidationMechanism + """ + self.swagger_types = { + 'validation_mechanism': TapiTopologyValidationMechanism + } + + self.attribute_map = { + 'validation_mechanism': 'validation-mechanism' + } + self._validation_mechanism = validation_mechanism + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyValidationMechanismWrapper': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ValidationMechanismWrapper of this TapiTopologyValidationMechanismWrapper. # noqa: E501 + :rtype: TapiTopologyValidationMechanismWrapper + """ + return util.deserialize_model(dikt, cls) + + @property + def validation_mechanism(self) -> TapiTopologyValidationMechanism: + """Gets the validation_mechanism of this TapiTopologyValidationMechanismWrapper. + + + :return: The validation_mechanism of this TapiTopologyValidationMechanismWrapper. + :rtype: TapiTopologyValidationMechanism + """ + return self._validation_mechanism + + @validation_mechanism.setter + def validation_mechanism(self, validation_mechanism: TapiTopologyValidationMechanism): + """Sets the validation_mechanism of this TapiTopologyValidationMechanismWrapper. + + + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationMechanismWrapper. + :type validation_mechanism: TapiTopologyValidationMechanism + """ + + self._validation_mechanism = validation_mechanism diff --git a/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_pac.py b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_pac.py new file mode 100644 index 0000000000000000000000000000000000000000..f90dbb029321110d664c72655b17f0523f474e23 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/models/tapi_topology_validation_pac.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +from __future__ import absolute_import +from datetime import date, datetime # noqa: F401 + +from typing import List, Dict # noqa: F401 + +from tapi_server.models.base_model_ import Model +from tapi_server.models.tapi_topology_validation_mechanism import TapiTopologyValidationMechanism # noqa: F401,E501 +from tapi_server import util + + +class TapiTopologyValidationPac(Model): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + def __init__(self, validation_mechanism: List[TapiTopologyValidationMechanism]=None): # noqa: E501 + """TapiTopologyValidationPac - a model defined in Swagger + + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationPac. # noqa: E501 + :type validation_mechanism: List[TapiTopologyValidationMechanism] + """ + self.swagger_types = { + 'validation_mechanism': List[TapiTopologyValidationMechanism] + } + + self.attribute_map = { + 'validation_mechanism': 'validation-mechanism' + } + self._validation_mechanism = validation_mechanism + + @classmethod + def from_dict(cls, dikt) -> 'TapiTopologyValidationPac': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The tapi.topology.ValidationPac of this TapiTopologyValidationPac. # noqa: E501 + :rtype: TapiTopologyValidationPac + """ + return util.deserialize_model(dikt, cls) + + @property + def validation_mechanism(self) -> List[TapiTopologyValidationMechanism]: + """Gets the validation_mechanism of this TapiTopologyValidationPac. + + Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity. # noqa: E501 + + :return: The validation_mechanism of this TapiTopologyValidationPac. + :rtype: List[TapiTopologyValidationMechanism] + """ + return self._validation_mechanism + + @validation_mechanism.setter + def validation_mechanism(self, validation_mechanism: List[TapiTopologyValidationMechanism]): + """Sets the validation_mechanism of this TapiTopologyValidationPac. + + Provides details of the specific validation mechanism(s) used to confirm the presence of an intended topologicalEntity. # noqa: E501 + + :param validation_mechanism: The validation_mechanism of this TapiTopologyValidationPac. + :type validation_mechanism: List[TapiTopologyValidationMechanism] + """ + + self._validation_mechanism = validation_mechanism diff --git a/hackfest/tapi/server/tapi_server/swagger/swagger.yaml b/hackfest/tapi/server/tapi_server/swagger/swagger.yaml new file mode 100644 index 0000000000000000000000000000000000000000..abb88f1d1d4472c3725e3744fc5841dff1b3be0b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/swagger/swagger.yaml @@ -0,0 +1,20565 @@ +openapi: 3.0.1 +info: + title: "tapi-notification,tapi-connectivity,tapi-topology,tapi-common,tapi-path-computation\ + \ API" + description: "\r\n This module contains TAPI Notification Model definitions.\r\ + \n Source: TapiNotification.uml\r\n - The TAPI YANG models included\ + \ in this TAPI release are a *normative* part of the TAPI SDK.\r\n - The\ + \ YANG specifications have been generated from the corresponding UML model using\ + \ the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section\ + \ 11 of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0,\r\n This module contains TAPI Connectivity Model\ + \ definitions.\r\n Source: TapiConnectivity.uml\r\n - The TAPI YANG\ + \ models included in this TAPI release are a *normative* part of the TAPI SDK.\r\ + \n - The YANG specifications have been generated from the corresponding\ + \ UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section 11\ + \ of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Topology Model\ + \ definitions.\r\n Source: TapiTopology.uml\r\n - The TAPI YANG\ + \ models included in this TAPI release are a *normative* part of the TAPI SDK.\r\ + \n - The YANG specifications have been generated from the corresponding\ + \ UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section\ + \ 11 of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Common Model definitions.\r\ + \n Source: TapiCommon.uml\r\n - The TAPI YANG models included in\ + \ this TAPI release are a *normative* part of the TAPI SDK.\r\n - The YANG\ + \ specifications have been generated from the corresponding UML model using the\ + \ [ONF EAGLE UML2YANG mapping tool]\r\n \r\ + \n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\ + \n - Status of YANG model artifacts can be determined by referring to the\ + \ corresponding UML artifacts.\r\n As described in the UML models, some\ + \ artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r\ + \n - The ONF TAPI release process does not guarantee backward compatibility\ + \ of YANG models across major versions of TAPI releases.\r\n The YANG model\ + \ backward compatibility criteria are outlined in section 11 of .\r\ + \n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Path Computation\ + \ Model definitions.\r\n Source: TapiPathComputation.uml\r\n - The\ + \ TAPI YANG models included in this TAPI release are a *normative* part of the\ + \ TAPI SDK.\r\n - The YANG specifications have been generated from the\ + \ corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \ + \ \r\n and\ + \ further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r\ + \n \r\ + \n - Status of YANG model artifacts can be determined by referring to the\ + \ corresponding UML artifacts.\r\n As described in the UML models, some\ + \ artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r\ + \n - The ONF TAPI release process does not guarantee backward compatibility\ + \ of YANG models across major versions of TAPI releases.\r\n The YANG model\ + \ backward compatibility criteria are outlined in section 11 of .\r\ + \n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0." + version: 2.1.3 +servers: +- url: //localhost:1234/ +paths: + /data/tapi-common:context/: + get: + tags: + - tapi-common + summary: returns tapi.common.Context + description: none + operationId: data_tapi_commoncontext_get + responses: + "200": + description: tapi.common.Context + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ContextWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + put: + tags: + - tapi-common + summary: creates or updates tapi.common.Context + description: none + operationId: data_tapi_commoncontext_put + requestBody: + description: tapi.common.Context to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.Context.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + post: + tags: + - tapi-common + summary: creates tapi.common.Context + description: none + operationId: data_tapi_commoncontext_post + requestBody: + description: tapi.common.Context to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.Context.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + delete: + tags: + - tapi-common + summary: removes tapi.common.Context + description: none + operationId: data_tapi_commoncontext_delete + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/name/: + post: + tags: + - tapi-common + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_name_post + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/name={value-name}/: + get: + tags: + - tapi-common + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_namevalue_name_get + parameters: + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + put: + tags: + - tapi-common + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_namevalue_name_put + parameters: + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + delete: + tags: + - tapi-common + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_namevalue_name_delete + parameters: + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point/: + post: + tags: + - tapi-common + summary: creates tapi.common.ServiceInterfacePoint + description: none + operationId: data_tapi_commoncontext_service_interface_point_post + requestBody: + description: tapi.common.ServiceInterfacePoint to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/: + get: + tags: + - tapi-common + summary: returns tapi.common.ServiceInterfacePoint + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.ServiceInterfacePoint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + put: + tags: + - tapi-common + summary: creates or updates tapi.common.ServiceInterfacePoint + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_put + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.ServiceInterfacePoint to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + delete: + tags: + - tapi-common + summary: removes tapi.common.ServiceInterfacePoint + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_delete + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/: + get: + tags: + - tapi-common + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - tapi-common + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-burst-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-information-rate/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-burst-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-information-rate/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/total-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_service_interface_pointuuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/name/: + post: + tags: + - tapi-common + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_service_interface_pointuuid_name_post + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/name={value-name}/: + get: + tags: + - tapi-common + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + put: + tags: + - tapi-common + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + delete: + tags: + - tapi-common + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/: + get: + tags: + - tapi-common + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/: + get: + tags: + - tapi-common + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/total-size/: + get: + tags: + - tapi-common + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityContext + description: Augments the base TAPI Context with ConnectivityService information + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_get + responses: + "200": + description: tapi.connectivity.ConnectivityContext + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityContextWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityContext + description: Augments the base TAPI Context with ConnectivityService information + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_put + requestBody: + description: tapi.connectivity.ConnectivityContext to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityContext + description: Augments the base TAPI Context with ConnectivityService information + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_post + requestBody: + description: tapi.connectivity.ConnectivityContext to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityContext + description: Augments the base TAPI Context with ConnectivityService information + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_delete + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.Connection + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.Connection + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-spec-reference/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionSpecReference + description: Provides the reference to the spec that defines the connection + type and cepRoles. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_spec_reference_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionSpecReference + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionSpecReferenceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/lower-connection={connection-uuid}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionRef + description: "An Connection object supports a recursive aggregation relationship\ + \ such that the internal construction of an Connection can be exposed as multiple\ + \ lower level Connection objects (partitioning).\r\n Aggregation\ + \ is used as for the Node/Topology to allow changes in hierarchy. \r\n \ + \ Connection aggregation reflects Node/Topology aggregation.\ + \ \r\n The FC represents a Cross-Connection in an NE. The Cross-Connection\ + \ in an NE is not necessarily the lowest level of FC partitioning." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_lower_connectionconnection_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: connection_uuid + in: path + description: Id of lower-connection + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/name={value-name}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.Route + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of route + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.Route + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.RouteWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of route + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/name={value-name}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of route + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ResilienceRoute + description: Provides optional resilience and state attributes to the Route. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of route + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ResilienceRoute + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ResilienceRouteWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/name={value-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of route + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/supported-client-link={topology-uuid},{link-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.LinkRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_supported_client_linktopology_uuidlink_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of supported-client-link + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of supported-client-link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LinkRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LinkRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.SwitchControl + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.SwitchControl + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.SwitchControlWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/name={value-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/resilience-type/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_resilience_type_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ResilienceType + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ResilienceTypeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/sub-switch-control={connection-uuid},{sub-switch-control-switch-control-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.SwitchControlRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_sub_switch_controlconnection_uuidsub_switch_control_switch_control_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: connection_uuid + in: path + description: Id of sub-switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: sub_switch_control_switch_control_uuid + in: path + description: Id of sub-switch-control + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.SwitchControlRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.SwitchControlRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.Switch + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of switch + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.Switch + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.SwitchWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/name={value-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of switch + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of switch + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of selected-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of selected-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of selected-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of selected-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-route={connection-uuid},{route-local-id}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.RouteRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_routeconnection_uuidroute_local_id_get + parameters: + - name: uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + - name: switch_control_uuid + in: path + description: Id of switch-control + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of switch + required: true + style: simple + explode: false + schema: + type: string + - name: connection_uuid + in: path + description: Id of selected-route + required: true + style: simple + explode: false + schema: + type: string + - name: route_local_id + in: path + description: Id of selected-route + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.RouteRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.RouteRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service/: + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityService + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_service_post + requestBody: + description: tapi.connectivity.ConnectivityService to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityService + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityService + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityService + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityService to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityService + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/connection={connection-uuid}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_connectionconnection_uuid_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: connection_uuid + in: path + description: Id of connection + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceRef to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceRef to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic/: + post: + tags: + - tapi-connectivity + summary: creates tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristic_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.CostCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.CostCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic={cost-name}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.CostCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.CostCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion/: + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusion_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceRef to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion={connectivity-service-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: connectivity_service_uuid + in: path + description: Id of diversity-exclusion + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: connectivity_service_uuid + in: path + description: Id of diversity-exclusion + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceRef to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: connectivity_service_uuid + in: path + description: Id of diversity-exclusion + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point/: + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_point_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPoint to be added to + list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceEndPoint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPoint to be added or + updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name/: + post: + tags: + - tapi-connectivity + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_name_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name={value-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectivityServiceEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.connectivity.ConnectivityServiceEndPointRef to be added + to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.connectivity.ConnectivityServiceEndPointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.connectivity.ConnectivityServiceEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.ServiceInterfacePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.ServiceInterfacePointRef to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.ServiceInterfacePointRef to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic/: + post: + tags: + - tapi-connectivity + summary: creates tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristic_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.LatencyCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.LatencyCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.LatencyCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.LatencyCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/: + get: + tags: + - tapi-connectivity + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/: + get: + tags: + - tapi-connectivity + summary: returns tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/: + get: + tags: + - tapi-connectivity + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name/: + post: + tags: + - tapi-connectivity + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_name_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name={value-name}/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/: + get: + tags: + - tapi-connectivity + summary: returns tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ResilienceType + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ResilienceTypeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.ResilienceType to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ResilienceTypeWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.ResilienceType.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.ResilienceType to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ResilienceTypeWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.ResilienceType.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic/: + post: + tags: + - tapi-connectivity + summary: creates tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristic_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.RiskCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.RiskCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.RiskCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.RiskCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/: + get: + tags: + - tapi-connectivity + summary: returns tapi.common.TimeRange + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_get + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.TimeRange + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.TimeRangeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + put: + tags: + - tapi-connectivity + summary: creates or updates tapi.common.TimeRange + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_put + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.TimeRange to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.TimeRangeWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.TimeRange.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + post: + tags: + - tapi-connectivity + summary: creates tapi.common.TimeRange + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_post + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.TimeRange to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.TimeRangeWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.TimeRange.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + delete: + tags: + - tapi-connectivity + summary: removes tapi.common.TimeRange + description: none + operationId: data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_delete + parameters: + - name: uuid + in: path + description: Id of connectivity-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /data/tapi-common:context/tapi-notification:notification-context/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.NotificationContext + description: Augments the base TAPI Context with NotificationService information + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_get + responses: + "200": + description: tapi.notification.NotificationContext + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationContextWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + put: + tags: + - tapi-notification + summary: creates or updates tapi.notification.NotificationContext + description: Augments the base TAPI Context with NotificationService information + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_put + requestBody: + description: tapi.notification.NotificationContext to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.notification.NotificationContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + post: + tags: + - tapi-notification + summary: creates tapi.notification.NotificationContext + description: Augments the base TAPI Context with NotificationService information + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_post + requestBody: + description: tapi.notification.NotificationContext to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.notification.NotificationContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + delete: + tags: + - tapi-notification + summary: removes tapi.notification.NotificationContext + description: Augments the base TAPI Context with NotificationService information + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_delete + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription/: + post: + tags: + - tapi-notification + summary: creates tapi.notification.NotificationSubscriptionService + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscription_post + requestBody: + description: tapi.notification.NotificationSubscriptionService to be added + to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.notification.NotificationSubscriptionService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.NotificationSubscriptionService + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.NotificationSubscriptionService + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionServiceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + put: + tags: + - tapi-notification + summary: creates or updates tapi.notification.NotificationSubscriptionService + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_put + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.notification.NotificationSubscriptionService to be added + or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.notification.NotificationSubscriptionService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + delete: + tags: + - tapi-notification + summary: removes tapi.notification.NotificationSubscriptionService + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_delete + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name/: + post: + tags: + - tapi-notification + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_name_post + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name={value-name}/: + get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + put: + tags: + - tapi-notification + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + delete: + tags: + - tapi-notification + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.NotificationChannel + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.NotificationChannel + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationChannelWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/name={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.Notification + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.Notification + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/additional-info={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_additional_infovalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of additional-info + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/alarm-info/ + : get: + tags: + - tapi-notification + summary: returns tapi.notification.AlarmInfo + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_alarm_info_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.AlarmInfo + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.AlarmInfoWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/changed-attributes={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.notification.NameAndValueChange + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_changed_attributesvalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of changed-attributes + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.NameAndValueChange + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NameAndValueChangeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/name={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/target-object-name={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_target_object_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of target-object-name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/tca-info/ + : get: + tags: + - tapi-notification + summary: returns tapi.notification.TcaInfo + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_tca_info_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: notification_uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.TcaInfo + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.TcaInfoWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.SubscriptionFilter + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.SubscriptionFilter + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilterWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + put: + tags: + - tapi-notification + summary: creates or updates tapi.notification.SubscriptionFilter + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_put + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.notification.SubscriptionFilter to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilterWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.notification.SubscriptionFilter.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + post: + tags: + - tapi-notification + summary: creates tapi.notification.SubscriptionFilter + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_post + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.notification.SubscriptionFilter to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilterWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.notification.SubscriptionFilter.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + delete: + tags: + - tapi-notification + summary: removes tapi.notification.SubscriptionFilter + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_delete + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name/: + post: + tags: + - tapi-notification + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_name_post + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name={value-name}/ + : get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + put: + tags: + - tapi-notification + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + delete: + tags: + - tapi-notification + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of notif-subscription + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.Notification + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.Notification + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NotificationWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/additional-info={value-name}/: + get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_additional_infovalue_name_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of additional-info + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/alarm-info/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.AlarmInfo + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_alarm_info_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.AlarmInfo + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.AlarmInfoWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/changed-attributes={value-name}/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.NameAndValueChange + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_changed_attributesvalue_name_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of changed-attributes + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.NameAndValueChange + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.NameAndValueChangeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/name={value-name}/: + get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/target-object-name={value-name}/: + get: + tags: + - tapi-notification + summary: returns tapi.common.NameAndValue + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_target_object_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of target-object-name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/tca-info/: + get: + tags: + - tapi-notification + summary: returns tapi.notification.TcaInfo + description: none + operationId: data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_tca_info_get + parameters: + - name: uuid + in: path + description: Id of notification + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.notification.TcaInfo + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.TcaInfoWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathComputationContext + description: Augments the base TAPI Context with PathComputationService information + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_get + responses: + "200": + description: tapi.path.computation.PathComputationContext + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationContextWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.PathComputationContext + description: Augments the base TAPI Context with PathComputationService information + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_put + requestBody: + description: tapi.path.computation.PathComputationContext to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.PathComputationContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.PathComputationContext + description: Augments the base TAPI Context with PathComputationService information + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_post + requestBody: + description: tapi.path.computation.PathComputationContext to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.PathComputationContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.PathComputationContext + description: Augments the base TAPI Context with PathComputationService information + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_delete + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service/: + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.PathComputationService + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_service_post + requestBody: + description: tapi.path.computation.PathComputationService to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.PathComputationService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathComputationService + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.PathComputationService + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationServiceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.PathComputationService + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathComputationService to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathComputationServiceWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.PathComputationService.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.PathComputationService + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point/: + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.PathServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_point_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathServiceEndPoint to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.PathServiceEndPoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.PathServiceEndPoint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPointWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.PathServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathServiceEndPoint to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPointWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.PathServiceEndPoint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.PathServiceEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.Capacity to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.Capacity.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.Capacity + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.BandwidthProfile to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.BandwidthProfile.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.CapacityValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.CapacityValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name/: + post: + tags: + - tapi-path-computation + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_name_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name={value-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.ServiceInterfacePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.ServiceInterfacePointRef to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.ServiceInterfacePointRef to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.ServiceInterfacePointRef.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.ServiceInterfacePointRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name/: + post: + tags: + - tapi-path-computation + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_name_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name={value-name}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathObjectiveFunction + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.PathObjectiveFunction + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunctionWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.PathObjectiveFunction + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathObjectiveFunction to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunctionWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.PathObjectiveFunction.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.PathObjectiveFunction + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathObjectiveFunction to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunctionWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.PathObjectiveFunction.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.PathObjectiveFunction + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name/: + post: + tags: + - tapi-path-computation + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_name_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name={value-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathOptimizationConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.PathOptimizationConstraint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraintWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.PathOptimizationConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathOptimizationConstraint to be added + or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.PathOptimizationConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.PathOptimizationConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.PathOptimizationConstraint to be added + to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.PathOptimizationConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.PathOptimizationConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name/: + post: + tags: + - tapi-path-computation + summary: creates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_name_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name={value-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.common.NameAndValue to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.common.NameAndValue.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/path={path-uuid}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.PathRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_pathpath_uuid_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: path_uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.PathRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.RoutingConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.RoutingConstraint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraintWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.RoutingConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.RoutingConstraint to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.RoutingConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.RoutingConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.RoutingConstraint to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.RoutingConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.RoutingConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic/ + : post: + tags: + - tapi-path-computation + summary: creates tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristic_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.CostCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.CostCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic={cost-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.CostCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.CostCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic/ + : post: + tags: + - tapi-path-computation + summary: creates tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristic_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.LatencyCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.LatencyCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.LatencyCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.LatencyCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.ValueOrPriority to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.ValueOrPriority.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic/ + : post: + tags: + - tapi-path-computation + summary: creates tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristic_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.RiskCharacteristic to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.RiskCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.topology.RiskCharacteristic to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.RiskCharacteristic.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.TopologyConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_get + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.TopologyConstraint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraintWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + put: + tags: + - tapi-path-computation + summary: creates or updates tapi.path.computation.TopologyConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_put + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.TopologyConstraint to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.path.computation.TopologyConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + post: + tags: + - tapi-path-computation + summary: creates tapi.path.computation.TopologyConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_post + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: tapi.path.computation.TopologyConstraint to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraintWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.path.computation.TopologyConstraint.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + delete: + tags: + - tapi-path-computation + summary: removes tapi.path.computation.TopologyConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_delete + parameters: + - name: uuid + in: path + description: Id of path-comp-service + required: true + style: simple + explode: false + schema: + type: string + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.Path + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.Path + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.PathWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/link={topology-uuid},{link-uuid}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.topology.LinkRef + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_linktopology_uuidlink_uuid_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LinkRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LinkRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/name={value-name}/: + get: + tags: + - tapi-path-computation + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.RoutingConstraint + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.RoutingConstraint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraintWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/cost-characteristic={cost-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-cost/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_cost_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-delay/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: Delay unit is microseconds. + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_delay_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-hops/: + get: + tags: + - tapi-path-computation + summary: returns tapi.path.computation.ValueOrPriority + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_hops_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.path.computation.ValueOrPriority + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriorityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-path-computation + summary: returns tapi.topology.RiskCharacteristic + description: none + operationId: data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of path + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-diversity-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /data/tapi-common:context/tapi-topology:topology-context/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.context.TopologyContext + description: Augments the base TAPI Context with TopologyService information + operationId: data_tapi_commoncontext_tapi_topologytopology_context_get + responses: + "200": + description: tapi.topology.TopologyContext + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyContextWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + put: + tags: + - tapi-topology + summary: creates or updates tapi.topology.context.TopologyContext + description: Augments the base TAPI Context with TopologyService information + operationId: data_tapi_commoncontext_tapi_topologytopology_context_put + requestBody: + description: tapi.topology.TopologyContext to be added or updated + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "204": + description: Object modified + content: {} + x-codegen-request-body-name: tapi.topology.context.TopologyContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + post: + tags: + - tapi-topology + summary: creates tapi.topology.context.TopologyContext + description: Augments the base TAPI Context with TopologyService information + operationId: data_tapi_commoncontext_tapi_topologytopology_context_post + requestBody: + description: tapi.topology.TopologyContext to be added to list + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyContextWrapper' + required: false + responses: + "201": + description: Object created + content: {} + "400": + description: Internal error + content: {} + "409": + description: Object already exists + content: {} + x-codegen-request-body-name: tapi.topology.context.TopologyContext.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + delete: + tags: + - tapi-topology + summary: removes tapi.topology.context.TopologyContext + description: Augments the base TAPI Context with TopologyService information + operationId: data_tapi_commoncontext_tapi_topologytopology_context_delete + responses: + "400": + description: Internal error + content: {} + "204": + description: Object deleted + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.NetworkTopologyService + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_get + responses: + "200": + description: tapi.topology.NetworkTopologyService + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NetworkTopologyServiceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/name={value-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_namevalue_name_get + parameters: + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/topology={topology-uuid}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.TopologyRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_topologytopology_uuid_get + parameters: + - name: topology_uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.TopologyRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.topologycontext.Topology + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.Topology + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.Link + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.Link + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LinkWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/: + get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/total-size/: + get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/cost-characteristic={cost-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/name={value-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/node-edge-point={topology-uuid},{node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeEdgePointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_node_edge_pointtopology_uuidnode_uuidnode_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/resilience-type/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.ResilienceType + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_resilience_type_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ResilienceType + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ResilienceTypeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.RiskCharacteristic + description: A list of risk characteristics for consideration in an analysis + of shared risk. Each element of the list represents a specific risk consideration. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_risk_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/: + get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/total-size/: + get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/validation-mechanism={validation-mechanism}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.ValidationMechanism + description: Provides details of the specific validation mechanism(s) used to + confirm the presence of an intended topologicalEntity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_validation_mechanismvalidation_mechanism_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: link_uuid + in: path + description: Id of link + required: true + style: simple + explode: false + schema: + type: string + - name: validation_mechanism + in: path + description: Id of validation-mechanism + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ValidationMechanism + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ValidationMechanismWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/name={value-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.topology.Node + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.topology.Node + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.topology.NodeWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeEdgePointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: aggregated_node_edge_point_node_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/: + get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/total-size/: + get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/cost-characteristic={cost-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/encap-topology/: + get: + tags: + - tapi-topology + summary: returns tapi.topology.TopologyRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_encap_topology_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.TopologyRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.TopologyRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/name={value-name}/: + get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeRuleGroup + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeRuleGroup + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/cost-characteristic={cost-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.InterRuleGroup + description: "Nested NodeRuleGroups may have InterRuleGroups. The Superior NodeRuleGroup\ + \ contains the nested NodeRuleGroups and their associated InterRuleGroups.\r\ + \n This is equivalent to the Node-Topology hierarchy." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.InterRuleGroup + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.InterRuleGroupWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/associated-node-rule-group={topology-uuid},{associated-node-rule-group-node-uuid},{associated-node-rule-group-node-rule-group-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeRuleGroupRef + description: "The NodeRuleGroups that the InterRuleGroup constrains interconnection\ + \ between.\r\n The CEPs of the NEPs of a referenced NodeRuleGroup\ + \ can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup\ + \ constrained by the rules of the InterRuleGroup." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_associated_node_rule_grouptopology_uuidassociated_node_rule_group_node_uuidassociated_node_rule_group_node_rule_group_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of associated-node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: associated_node_rule_group_node_uuid + in: path + description: Id of associated-node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: associated_node_rule_group_node_rule_group_uuid + in: path + description: Id of associated-node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeRuleGroupRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/cost-characteristic={cost-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.CostCharacteristic + description: The list of costs where each cost relates to some aspect of the + TopologicalEntity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_cost_characteristiccost_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: cost_name + in: path + description: Id of cost-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.CostCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.CostCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/name={value-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.RiskCharacteristic + description: A list of risk characteristics for consideration in an analysis + of shared risk. Each element of the list represents a specific risk consideration. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_risk_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.Rule + description: The list of rules of the InterRuleGroup. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.Rule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/cep-port-role/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.PortRoleRule + description: "Indicates the port role to which the rule applies. \r\n \ + \ The port role is interpreted in the context of the connection type\ + \ which is identified by the connection spec. \r\n The port\ + \ role is not meaningful in the absence of a connection spec reference.\r\n\ + \ If a node rule group carries a port role, that role applies\ + \ also to the associated inter rule where the combination of the roles in\ + \ the node rule groups at the ends of the inter group rule define the connection\ + \ orientation.\r\n For example a root-and-leaf connection may\ + \ be used in a node where a node rule group collects one set of NEPs has the\ + \ port role 'root' and another node rule group collects another set of NEPs\ + \ has the port role 'leaf' where these are joined by an inter rule group.\ + \ This combination specifies an allowed orientation of the root-and-leaf connection.\r\ + \n No port role statement means all port roles are allowed." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_cep_port_role_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.PortRoleRule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.PortRoleRuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/connection-spec-reference/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.ConnectionSpecReference + description: "Identifies the type of connection that the rule applies to. \r\ + \n If the attribute is not present then the rule applies to\ + \ all types of connection supported by the device." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_connection_spec_reference_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ConnectionSpecReference + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ConnectionSpecReferenceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/name={value-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/signal-property/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.SignalPropertyRule + description: "The rule only applies to signals with the properties listed. \r\ + \n If the attribute is not present then the rule applies to\ + \ all signals." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_signal_property_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.SignalPropertyRule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.SignalPropertyRuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: inter_rule_group_uuid + in: path + description: Id of inter-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.LatencyCharacteristic + description: The effect on the latency of a queuing process. This only has significant + effect for packet based systems and has a complex characteristic. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_latency_characteristictraffic_property_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: traffic_property_name + in: path + description: Id of latency-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.LatencyCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/name={value-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-edge-point={topology-uuid},{node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeEdgePointRef + description: NEPs and their client CEPs that the rules apply to. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_edge_pointtopology_uuidnode_edge_point_node_uuidnode_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_node_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-rule-group={topology-uuid},{node-rule-group-node-uuid},{node-rule-group-node-rule-group-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeRuleGroupRef + description: "NodeRuleGroups may be nested such that finer grained rules may\ + \ be applied.\r\n A nested rule group should have a subset\ + \ of the NEPs of the superior rule group." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_rule_grouptopology_uuidnode_rule_group_node_uuidnode_rule_group_node_rule_group_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_node_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeRuleGroupRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.RiskCharacteristic + description: A list of risk characteristics for consideration in an analysis + of shared risk. Each element of the list represents a specific risk consideration. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_risk_characteristicrisk_characteristic_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: risk_characteristic_name + in: path + description: Id of risk-characteristic + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.RiskCharacteristic + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristicWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.Rule + description: The list of rules of the NodeRuleGroup. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.Rule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.RuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/cep-port-role/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.PortRoleRule + description: "Indicates the port role to which the rule applies. \r\n \ + \ The port role is interpreted in the context of the connection type\ + \ which is identified by the connection spec. \r\n The port\ + \ role is not meaningful in the absence of a connection spec reference.\r\n\ + \ If a node rule group carries a port role, that role applies\ + \ also to the associated inter rule where the combination of the roles in\ + \ the node rule groups at the ends of the inter group rule define the connection\ + \ orientation.\r\n For example a root-and-leaf connection may\ + \ be used in a node where a node rule group collects one set of NEPs has the\ + \ port role 'root' and another node rule group collects another set of NEPs\ + \ has the port role 'leaf' where these are joined by an inter rule group.\ + \ This combination specifies an allowed orientation of the root-and-leaf connection.\r\ + \n No port role statement means all port roles are allowed." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_cep_port_role_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.PortRoleRule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.PortRoleRuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/connection-spec-reference/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.ConnectionSpecReference + description: "Identifies the type of connection that the rule applies to. \r\ + \n If the attribute is not present then the rule applies to\ + \ all types of connection supported by the device." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_connection_spec_reference_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.ConnectionSpecReference + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.ConnectionSpecReferenceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/name={value-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/signal-property/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.SignalPropertyRule + description: "The rule only applies to signals with the properties listed. \r\ + \n If the attribute is not present then the rule applies to\ + \ all signals." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_signal_property_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + - name: local_id + in: path + description: Id of rule + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.SignalPropertyRule + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.SignalPropertyRuleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: node_rule_group_uuid + in: path + description: Id of node-rule-group + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.node.OwnedNodeEdgePoint + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.node.OwnedNodeEdgePoint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.node.OwnedNodeEdgePointWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.topology.NodeEdgePointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: aggregated_node_edge_point_node_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of aggregated-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: Capacity available to be assigned. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/mapped-service-interface-point={service-interface-point-uuid}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.ServiceInterfacePointRef + description: NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) + or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience) + should be considered experimental + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_mapped_service_interface_pointservice_interface_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: service_interface_point_uuid + in: path + description: Id of mapped-service-interface-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.ServiceInterfacePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/name={value-name}/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.CepList + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.CepList + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.CepListWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPoint + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPoint + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/aggregated-connection-end-point={topology-uuid},{aggregated-connection-end-point-node-uuid},{node-edge-point-uuid},{aggregated-connection-end-point-connection-end-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionEndPointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_aggregated_connection_end_pointtopology_uuidaggregated_connection_end_point_node_uuidnode_edge_point_uuidaggregated_connection_end_point_connection_end_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of aggregated-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: aggregated_connection_end_point_node_uuid + in: path + description: Id of aggregated-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of aggregated-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: aggregated_connection_end_point_connection_end_point_uuid + in: path + description: Id of aggregated-connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionEndPointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.CepRole + description: "Defines the role of the CEP in the context of the connection spec.\r\ + \n There may be many cep role - connection spec combinations\ + \ for a particular CEP where each corresponds to a specific connection associated\ + \ with the CEP." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.CepRole + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.CepRoleWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/connection-spec-reference/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.connectivity.ConnectionSpecReference + description: The reference to the spec that defines the cep role. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_connection_spec_reference_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.connectivity.ConnectionSpecReference + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.ConnectionSpecReferenceWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/client-node-edge-point={topology-uuid},{client-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.NodeEdgePointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_client_node_edge_pointtopology_uuidclient_node_edge_point_node_uuidnode_edge_point_uuid_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: topology_uuid + in: path + description: Id of client-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: client_node_edge_point_node_uuid + in: path + description: Id of client-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: node_edge_point_uuid + in: path + description: Id of client-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/name={value-name}/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.common.NameAndValue + description: List of names. A property of an entity with a value that is unique + in some namespace but may change during the life of the entity. A name carries + no semantics with respect to the purpose of the entity. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_namevalue_name_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + - name: value_name + in: path + description: Id of name + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.NameAndValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.NameAndValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/parent-node-edge-point/ + : get: + tags: + - tapi-connectivity + summary: returns tapi.topology.NodeEdgePointRef + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_parent_node_edge_point_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + - name: connection_end_point_uuid + in: path + description: Id of connection-end-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.topology.NodeEdgePointRef + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRefWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + - name: owned_node_edge_point_uuid + in: path + description: Id of owned-node-edge-point + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/: + get: + tags: + - tapi-topology + summary: returns tapi.common.Capacity + description: An optimistic view of the capacity of the TopologicalEntity assuming + that any shared capacity is available to be taken. + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.Capacity + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.BandwidthProfile + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.BandwidthProfile + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.BandwidthProfileWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: none + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/total-size/: + get: + tags: + - tapi-topology + summary: returns tapi.common.CapacityValue + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + operationId: data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_total_size_get + parameters: + - name: uuid + in: path + description: Id of topology + required: true + style: simple + explode: false + schema: + type: string + - name: node_uuid + in: path + description: Id of node + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: tapi.common.CapacityValue + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.CapacityValueWrapper' + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /operations/tapi-common:get-service-interface-point-details/: + post: + tags: + - tapi-common + summary: operates on tapi.common.GetServiceInterfacePointDetails + description: operates on tapi.common.GetServiceInterfacePointDetails + operationId: operations_tapi_commonget_service_interface_point_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapicommongetserviceinterfacepointdetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.GetServiceInterfacePointDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.common.getserviceinterfacepointdetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /operations/tapi-common:get-service-interface-point-list/: + post: + tags: + - tapi-common + operationId: operations_tapi_commonget_service_interface_point_list_post + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.common.GetServiceInterfacePointList' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /operations/tapi-common:update-service-interface-point/: + post: + tags: + - tapi-common + summary: operates on tapi.common.UpdateServiceInterfacePoint + description: operates on tapi.common.UpdateServiceInterfacePoint + operationId: operations_tapi_commonupdate_service_interface_point_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapicommonupdateserviceinterfacepoint_body' + required: false + responses: + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.common.updateserviceinterfacepoint.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_common_controller + /operations/tapi-connectivity:create-connectivity-service/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.CreateConnectivityService + description: operates on tapi.connectivity.CreateConnectivityService + operationId: operations_tapi_connectivitycreate_connectivity_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivitycreateconnectivityservice_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.CreateConnectivityService' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.createconnectivityservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:delete-connectivity-service/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.DeleteConnectivityService + description: operates on tapi.connectivity.DeleteConnectivityService + operationId: operations_tapi_connectivitydelete_connectivity_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivitydeleteconnectivityservice_body' + required: false + responses: + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.deleteconnectivityservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:get-connection-details/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.GetConnectionDetails + description: operates on tapi.connectivity.GetConnectionDetails + operationId: operations_tapi_connectivityget_connection_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivitygetconnectiondetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.GetConnectionDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.getconnectiondetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:get-connection-end-point-details/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.GetConnectionEndPointDetails + description: operates on tapi.connectivity.GetConnectionEndPointDetails + operationId: operations_tapi_connectivityget_connection_end_point_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivitygetconnectionendpointdetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.GetConnectionEndPointDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.getconnectionendpointdetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:get-connectivity-service-details/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.GetConnectivityServiceDetails + description: operates on tapi.connectivity.GetConnectivityServiceDetails + operationId: operations_tapi_connectivityget_connectivity_service_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivitygetconnectivityservicedetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.GetConnectivityServiceDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.getconnectivityservicedetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:get-connectivity-service-list/: + post: + tags: + - tapi-connectivity + operationId: operations_tapi_connectivityget_connectivity_service_list_post + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.GetConnectivityServiceList' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-connectivity:update-connectivity-service/: + post: + tags: + - tapi-connectivity + summary: operates on tapi.connectivity.UpdateConnectivityService + description: operates on tapi.connectivity.UpdateConnectivityService + operationId: operations_tapi_connectivityupdate_connectivity_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapiconnectivityupdateconnectivityservice_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.connectivity.UpdateConnectivityService' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.connectivity.updateconnectivityservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_connectivity_controller + /operations/tapi-notification:create-notification-subscription-service/: + post: + tags: + - tapi-notification + summary: operates on tapi.notification.CreateNotificationSubscriptionService + description: operates on tapi.notification.CreateNotificationSubscriptionService + operationId: operations_tapi_notificationcreate_notification_subscription_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapinotificationcreatenotificationsubscriptionservice_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.CreateNotificationSubscriptionService' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.notification.createnotificationsubscriptionservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:delete-notification-subscription-service/: + post: + tags: + - tapi-notification + summary: operates on tapi.notification.DeleteNotificationSubscriptionService + description: operates on tapi.notification.DeleteNotificationSubscriptionService + operationId: operations_tapi_notificationdelete_notification_subscription_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapinotificationdeletenotificationsubscriptionservice_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.DeleteNotificationSubscriptionService' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.notification.deletenotificationsubscriptionservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:get-notification-list/: + post: + tags: + - tapi-notification + summary: operates on tapi.notification.GetNotificationList + description: operates on tapi.notification.GetNotificationList + operationId: operations_tapi_notificationget_notification_list_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapinotificationgetnotificationlist_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.GetNotificationList' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.notification.getnotificationlist.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:get-notification-subscription-service-details/: + post: + tags: + - tapi-notification + summary: operates on tapi.notification.GetNotificationSubscriptionServiceDetails + description: operates on tapi.notification.GetNotificationSubscriptionServiceDetails + operationId: operations_tapi_notificationget_notification_subscription_service_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapinotificationgetnotificationsubscriptionservicedetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.GetNotificationSubscriptionServiceDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.notification.getnotificationsubscriptionservicedetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:get-notification-subscription-service-list/: + post: + tags: + - tapi-notification + operationId: operations_tapi_notificationget_notification_subscription_service_list_post + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.GetNotificationSubscriptionServiceList' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:get-supported-notification-types/: + post: + tags: + - tapi-notification + operationId: operations_tapi_notificationget_supported_notification_types_post + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.GetSupportedNotificationTypes' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-notification:update-notification-subscription-service/: + post: + tags: + - tapi-notification + summary: operates on tapi.notification.UpdateNotificationSubscriptionService + description: operates on tapi.notification.UpdateNotificationSubscriptionService + operationId: operations_tapi_notificationupdate_notification_subscription_service_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapinotificationupdatenotificationsubscriptionservice_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.notification.UpdateNotificationSubscriptionService' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.notification.updatenotificationsubscriptionservice.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_notification_controller + /operations/tapi-path-computation:compute-p-2-p-path/: + post: + tags: + - tapi-path-computation + summary: operates on tapi.path.computation.ComputeP2PPath + description: operates on tapi.path.computation.ComputeP2PPath + operationId: operations_tapi_path_computationcompute_p_2_p_path_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapipathcomputationcomputep2ppath_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.ComputeP2PPath' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.path.computation.computep2ppath.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /operations/tapi-path-computation:delete-p-2-p-path/: + post: + tags: + - tapi-path-computation + summary: operates on tapi.path.computation.DeleteP2PPath + description: operates on tapi.path.computation.DeleteP2PPath + operationId: operations_tapi_path_computationdelete_p_2_p_path_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapipathcomputationdeletep2ppath_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.DeleteP2PPath' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.path.computation.deletep2ppath.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /operations/tapi-path-computation:optimize-p-2-ppath/: + post: + tags: + - tapi-path-computation + summary: operates on tapi.path.computation.OptimizeP2Ppath + description: operates on tapi.path.computation.OptimizeP2Ppath + operationId: operations_tapi_path_computationoptimize_p_2_ppath_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapipathcomputationoptimizep2ppath_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.path.computation.OptimizeP2Ppath' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.path.computation.optimizep2ppath.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_path_computation_controller + /operations/tapi-topology:get-link-details/: + post: + tags: + - tapi-topology + summary: operates on tapi.topology.GetLinkDetails + description: operates on tapi.topology.GetLinkDetails + operationId: operations_tapi_topologyget_link_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapitopologygetlinkdetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.GetLinkDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.topology.getlinkdetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /operations/tapi-topology:get-node-details/: + post: + tags: + - tapi-topology + summary: operates on tapi.topology.GetNodeDetails + description: operates on tapi.topology.GetNodeDetails + operationId: operations_tapi_topologyget_node_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapitopologygetnodedetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.GetNodeDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.topology.getnodedetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /operations/tapi-topology:get-node-edge-point-details/: + post: + tags: + - tapi-topology + summary: operates on tapi.topology.GetNodeEdgePointDetails + description: operates on tapi.topology.GetNodeEdgePointDetails + operationId: operations_tapi_topologyget_node_edge_point_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapitopologygetnodeedgepointdetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.GetNodeEdgePointDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.topology.getnodeedgepointdetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /operations/tapi-topology:get-topology-details/: + post: + tags: + - tapi-topology + summary: operates on tapi.topology.GetTopologyDetails + description: operates on tapi.topology.GetTopologyDetails + operationId: operations_tapi_topologyget_topology_details_post + requestBody: + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/operations_tapitopologygettopologydetails_body' + required: false + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.GetTopologyDetails' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-codegen-request-body-name: tapi.topology.gettopologydetails.Input.body-param + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller + /operations/tapi-topology:get-topology-list/: + post: + tags: + - tapi-topology + operationId: operations_tapi_topologyget_topology_list_post + responses: + "200": + description: Correct response + content: + application/yang-data+json: + schema: + $ref: '#/components/schemas/tapi.topology.GetTopologyList' + "201": + description: No response + content: {} + "400": + description: Internal error + content: {} + x-openapi-router-controller: tapi_server.controllers.tapi_topology_controller +components: + schemas: + tapi.common.AdminStatePac: + type: object + properties: + operational-state: + $ref: '#/components/schemas/tapi.common.OperationalState' + lifecycle-state: + $ref: '#/components/schemas/tapi.common.LifecycleState' + administrative-state: + $ref: '#/components/schemas/tapi.common.AdministrativeState' + tapi.common.AdministrativeState: + type: string + enum: + - LOCKED + - UNLOCKED + tapi.common.BandwidthProfile: + type: object + properties: + committed-information-rate: + $ref: '#/components/schemas/tapi.common.CapacityValue' + coupling-flag: + type: boolean + description: none + default: false + bw-profile-type: + $ref: '#/components/schemas/tapi.common.BandwidthProfileType' + peak-information-rate: + $ref: '#/components/schemas/tapi.common.CapacityValue' + committed-burst-size: + $ref: '#/components/schemas/tapi.common.CapacityValue' + peak-burst-size: + $ref: '#/components/schemas/tapi.common.CapacityValue' + color-aware: + type: boolean + description: none + default: false + tapi.common.BandwidthProfileType: + type: string + enum: + - MEF_10.x + - RFC_2697 + - RFC_2698 + - RFC_4115 + tapi.common.BandwidthProfileWrapper: + type: object + properties: + bandwidth-profile: + $ref: '#/components/schemas/tapi.common.BandwidthProfile' + tapi.common.Capacity: + type: object + properties: + bandwidth-profile: + $ref: '#/components/schemas/tapi.common.BandwidthProfile' + total-size: + $ref: '#/components/schemas/tapi.common.CapacityValue' + tapi.common.CapacityPac: + type: object + properties: + available-capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + total-potential-capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + tapi.common.CapacityUnit: + type: string + enum: + - TB + - TBPS + - GB + - GBPS + - MB + - MBPS + - KB + - KBPS + - GHz + - MHz + tapi.common.CapacityValue: + type: object + properties: + value: + type: integer + description: none + format: int32 + unit: + $ref: '#/components/schemas/tapi.common.CapacityUnit' + tapi.common.CapacityValueWrapper: + type: object + properties: + committed-burst-size: + $ref: '#/components/schemas/tapi.common.CapacityValue' + tapi.common.CapacityWrapper: + type: object + properties: + available-capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + tapi.common.Context: + allOf: + - $ref: '#/components/schemas/tapi.common.TapiContext' + - $ref: '#/components/schemas/tapi.connectivity.ContextAugmentation3' + - $ref: '#/components/schemas/tapi.notification.ContextAugmentation1' + - $ref: '#/components/schemas/tapi.path.computation.ContextAugmentation2' + - $ref: '#/components/schemas/tapi.topology.ContextAugmentation4' + tapi.common.ContextWrapper: + type: object + properties: + tapi-common:context: + $ref: '#/components/schemas/tapi.common.Context' + tapi.common.DirectiveValue: + type: string + enum: + - MINIMIZE + - MAXIMIZE + - ALLOW + - DISALLOW + - DONT_CARE + tapi.common.ForwardingDirection: + type: string + enum: + - BIDIRECTIONAL + - UNIDIRECTIONAL + - UNDEFINED_OR_UNKNOWN + tapi.common.GetServiceInterfacePointDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.common.getserviceinterfacepointdetails.Output' + tapi.common.GetServiceInterfacePointList: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.common.getserviceinterfacepointlist.Output' + tapi.common.GlobalClass: + type: object + properties: + name: + type: array + description: List of names. A property of an entity with a value that is + unique in some namespace but may change during the life of the entity. + A name carries no semantics with respect to the purpose of the entity. + items: + $ref: '#/components/schemas/tapi.common.NameAndValue' + uuid: + type: string + description: "UUID: An identifier that is universally unique within an identifier\ + \ space, where the identifier space is itself globally unique, and immutable.\ + \ An UUID carries no semantics with respect to the purpose or state of\ + \ the entity.\r\n UUID here uses string representation\ + \ as defined in RFC 4122. The canonical representation uses lowercase\ + \ characters.\r\n Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'\ + \ + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} \r\n Example of a UUID\ + \ in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6" + tapi.common.LayerProtocolName: + type: string + enum: + - ODU + - ETH + - DSR + - PHOTONIC_MEDIA + tapi.common.LifecycleState: + type: string + enum: + - PLANNED + - POTENTIAL_AVAILABLE + - POTENTIAL_BUSY + - INSTALLED + - PENDING_REMOVAL + tapi.common.LocalClass: + type: object + properties: + name: + type: array + description: List of names. A property of an entity with a value that is + unique in some namespace but may change during the life of the entity. + A name carries no semantics with respect to the purpose of the entity. + items: + $ref: '#/components/schemas/tapi.common.NameAndValue' + local-id: + type: string + description: none + tapi.common.NameAndValue: + type: object + properties: + value-name: + type: string + description: The name of the value. The value need not have a name. + value: + type: string + description: The value + tapi.common.NameAndValueWrapper: + type: object + properties: + name: + $ref: '#/components/schemas/tapi.common.NameAndValue' + tapi.common.OperationalState: + type: string + enum: + - DISABLED + - ENABLED + tapi.common.OperationalStatePac: + type: object + properties: + operational-state: + $ref: '#/components/schemas/tapi.common.OperationalState' + lifecycle-state: + $ref: '#/components/schemas/tapi.common.LifecycleState' + tapi.common.PortDirection: + type: string + enum: + - BIDIRECTIONAL + - INPUT + - OUTPUT + - UNIDENTIFIED_OR_UNKNOWN + tapi.common.PortRole: + type: string + enum: + - SYMMETRIC + - ROOT + - LEAF + - TRUNK + - UNKNOWN + tapi.common.ServiceInterfacePoint: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + supported-layer-protocol-qualifier: + type: array + description: none + items: + type: string + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + description: "The LogicalTerminationPoint (LTP) object class encapsulates\ + \ the termination and adaptation functions of one or more transport layers.\ + \ \r\n The structure of LTP supports all transport protocols\ + \ including circuit and packet forms." + tapi.common.ServiceInterfacePointRef: + type: object + properties: + service-interface-point-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid + tapi.common.ServiceInterfacePointRefWrapper: + type: object + properties: + service-interface-point: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRef' + tapi.common.ServiceInterfacePointWrapper: + type: object + properties: + service-interface-point: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePoint' + tapi.common.TapiContext: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + service-interface-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePoint' + description: "The Network Control Domain (NCD) object class represents the\ + \ scope of control that a particular SDN controller has with respect to\ + \ a particular network, (i.e., encompassing a designated set of interconnected\ + \ (virtual) network elements)." + tapi.common.TerminationDirection: + type: string + enum: + - BIDIRECTIONAL + - SINK + - SOURCE + - UNDEFINED_OR_UNKNOWN + tapi.common.TerminationPac: + type: object + properties: + termination-direction: + $ref: '#/components/schemas/tapi.common.TerminationDirection' + termination-state: + $ref: '#/components/schemas/tapi.common.TerminationState' + tapi.common.TerminationState: + type: string + enum: + - LP_CAN_NEVER_TERMINATE + - LT_NOT_TERMINATED + - TERMINATED_SERVER_TO_CLIENT_FLOW + - TERMINATED_CLIENT_TO_SERVER_FLOW + - TERMINATED_BIDIRECTIONAL + - LT_PERMENANTLY_TERMINATED + - TERMINATION_STATE_UNKNOWN + tapi.common.TimeRange: + type: object + properties: + end-time: + type: string + description: none + start-time: + type: string + description: none + tapi.common.TimeRangeWrapper: + type: object + properties: + schedule: + $ref: '#/components/schemas/tapi.common.TimeRange' + tapi.common.getserviceinterfacepointdetails.Input: + type: object + properties: + sip-id-or-name: + type: string + description: none + tapi.common.getserviceinterfacepointdetails.Output: + type: object + properties: + sip: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePoint' + tapi.common.getserviceinterfacepointlist.Output: + type: object + properties: + sip: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePoint' + tapi.common.updateserviceinterfacepoint.Input: + type: object + properties: + sip-id-or-name: + type: string + description: none + state: + $ref: '#/components/schemas/tapi.common.AdministrativeState' + tapi.connectivity.CepList: + type: object + properties: + connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPoint' + tapi.connectivity.CepListWrapper: + type: object + properties: + tapi-connectivity:cep-list: + $ref: '#/components/schemas/tapi.connectivity.CepList' + tapi.connectivity.CepRole: + type: object + properties: + role-name: + type: string + description: The name of the cep role in the context of the referenced spec. + connection-spec-reference: + $ref: '#/components/schemas/tapi.connectivity.ConnectionSpecReference' + tapi.connectivity.CepRoleWrapper: + type: object + properties: + cep-role: + $ref: '#/components/schemas/tapi.connectivity.CepRole' + tapi.connectivity.Connection: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.common.OperationalStatePac' + - type: object + properties: + supported-client-link: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.LinkRef' + lower-connection: + type: array + description: "An Connection object supports a recursive aggregation relationship\ + \ such that the internal construction of an Connection can be exposed\ + \ as multiple lower level Connection objects (partitioning).\r\n \ + \ Aggregation is used as for the Node/Topology to allow\ + \ changes in hierarchy. \r\n Connection aggregation reflects\ + \ Node/Topology aggregation. \r\n The FC represents a\ + \ Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily\ + \ the lowest level of FC partitioning." + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionRef' + switch-control: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.SwitchControl' + route: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.Route' + connection-spec-reference: + $ref: '#/components/schemas/tapi.connectivity.ConnectionSpecReference' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + direction: + $ref: '#/components/schemas/tapi.common.ForwardingDirection' + description: "The ForwardingConstruct (FC) object class models enabled potential\ + \ for forwarding between two or more LTPs and like the LTP supports any\ + \ transport protocol including all circuit and packet forms.\r\n \ + \ At the lowest level of recursion, a FC represents a cross-connection\ + \ within an NE." + tapi.connectivity.ConnectionEndPoint: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.common.OperationalStatePac' + - $ref: '#/components/schemas/tapi.common.TerminationPac' + - type: object + properties: + client-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + connection-port-role: + $ref: '#/components/schemas/tapi.common.PortRole' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + layer-protocol-qualifier: + type: string + description: none + parent-node-edge-point: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + cep-role: + type: array + description: "Defines the role of the CEP in the context of the connection\ + \ spec.\r\n There may be many cep role - connection spec\ + \ combinations for a particular CEP where each corresponds to a specific\ + \ connection associated with the CEP." + items: + $ref: '#/components/schemas/tapi.connectivity.CepRole' + aggregated-connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + connection-port-direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + description: "The LogicalTerminationPoint (LTP) object class encapsulates\ + \ the termination and adaptation functions of one or more transport layers.\ + \ \r\n The structure of LTP supports all transport protocols\ + \ including circuit and packet forms." + tapi.connectivity.ConnectionEndPointRef: + allOf: + - $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + - type: object + properties: + connection-end-point-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point/tapi-connectivity:uuid + description: none + tapi.connectivity.ConnectionEndPointRefWrapper: + type: object + properties: + connection-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + tapi.connectivity.ConnectionEndPointWrapper: + type: object + properties: + connection-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPoint' + tapi.connectivity.ConnectionRef: + type: object + properties: + connection-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:uuid + tapi.connectivity.ConnectionRefWrapper: + type: object + properties: + lower-connection: + $ref: '#/components/schemas/tapi.connectivity.ConnectionRef' + tapi.connectivity.ConnectionSpecReference: + type: object + properties: + connection-spec-name: + type: string + description: "The name of the connection spec.\r\n This can\ + \ be used alone (with no spec reference) where there is only a paper spec." + connection-spec-id: + type: string + description: "The reference to a formal spec. \r\n This reference\ + \ need not be provided (e.g., where there is no formal machine interpretable\ + \ spec for the type of connection)." + tapi.connectivity.ConnectionSpecReferenceWrapper: + type: object + properties: + connection-spec-reference: + $ref: '#/components/schemas/tapi.connectivity.ConnectionSpecReference' + tapi.connectivity.ConnectionWrapper: + type: object + properties: + connection: + $ref: '#/components/schemas/tapi.connectivity.Connection' + tapi.connectivity.ConnectivityConstraint: + type: object + properties: + service-layer: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + schedule: + $ref: '#/components/schemas/tapi.common.TimeRange' + connectivity-direction: + $ref: '#/components/schemas/tapi.common.ForwardingDirection' + requested-capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + diversity-exclusion: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRef' + connection-inclusion: + type: array + description: "A ConnectivityService may use one or more existing Connections.\r\ + \n A common traditional strategy is to set up “stranded”\ + \ connectivity in the core of the network as “express channels” (this\ + \ is essentially a serial compound link, but can be treated as simple\ + \ connections)\r\n A connection inclusion capability allows\ + \ for adoption of a discovered Connections.\r\n A ConnectivityService\ + \ is requested with a connection inclusion constraint that identifies\ + \ a connection (or chain of connections) that is bounded by CEPs that\ + \ each belong to a NEP that references a SIP that is referenced by a CSEP\ + \ of the ConnectivityService such that all CSEPs are satisfied by CEPs\ + \ of the existing Connection. will allow discovered Connections with no\ + \ stated intent to be associated with an intent via the ConnectivityService." + items: + type: string + service-level: + type: string + description: "An abstract value the meaning of which is mutually agreed\ + \ – typically represents metrics such as - Class of service, priority,\ + \ resiliency, availability" + service-type: + $ref: '#/components/schemas/tapi.connectivity.ServiceType' + connection-exclusion: + type: array + description: none + items: + type: string + coroute-inclusion: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRef' + tapi.connectivity.ConnectivityContext: + type: object + properties: + connectivity-service: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + connection: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.Connection' + tapi.connectivity.ConnectivityContextWrapper: + type: object + properties: + tapi-connectivity:connectivity-context: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityContext' + tapi.connectivity.ConnectivityService: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.connectivity.ConnectivityConstraint' + - $ref: '#/components/schemas/tapi.connectivity.ResilienceConstraint' + - $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + - $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + - type: object + properties: + end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPoint' + connection: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionRef' + description: "The ForwardingConstruct (FC) object class models enabled potential\ + \ for forwarding between two or more LTPs and like the LTP supports any\ + \ transport protocol including all circuit and packet forms.\r\n \ + \ At the lowest level of recursion, a FC represents a cross-connection\ + \ within an NE." + tapi.connectivity.ConnectivityServiceEndPoint: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + protection-role: + $ref: '#/components/schemas/tapi.connectivity.ProtectionRole' + role: + $ref: '#/components/schemas/tapi.common.PortRole' + service-interface-point: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRef' + peer-fwd-connectivity-service-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRef' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + layer-protocol-qualifier: + type: string + description: none + connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + server-connectivity-service-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRef' + protecting-connectivity-service-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRef' + direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + description: "The association of the FC to LTPs is made via EndPoints.\r\n\ + \ The EndPoint (EP) object class models the access to the FC\ + \ function. \r\n The traffic forwarding between the associated\ + \ EPs of the FC depends upon the type of FC and may be associated with FcSwitch\ + \ object instances. \r\n In cases where there is resilience\ + \ the EndPoint may convey the resilience role of the access to the FC. \r\ + \n It can represent a protected (resilient/reliable) point or\ + \ a protecting (unreliable working or protection) point.\r\n \ + \ The EP replaces the Protection Unit of a traditional protection model.\ + \ \r\n The ForwadingConstruct can be considered as a component\ + \ and the EndPoint as a Port on that component" + tapi.connectivity.ConnectivityServiceEndPointRef: + allOf: + - $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRef' + - type: object + properties: + connectivity-service-end-point-local-id: + type: string + description: none + x-path: /tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id + description: none + tapi.connectivity.ConnectivityServiceEndPointRefWrapper: + type: object + properties: + peer-fwd-connectivity-service-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPointRef' + tapi.connectivity.ConnectivityServiceEndPointWrapper: + type: object + properties: + end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPoint' + tapi.connectivity.ConnectivityServiceRef: + type: object + properties: + connectivity-service-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid + tapi.connectivity.ConnectivityServiceRefWrapper: + type: object + properties: + coroute-inclusion: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceRef' + tapi.connectivity.ConnectivityServiceWrapper: + type: object + properties: + connectivity-service: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + tapi.connectivity.ContextAugmentation3: + type: object + properties: + connectivity-context: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityContext' + x-augmentation: + prefix: tapi-connectivity + namespace: urn:onf:otcc:yang:tapi-connectivity + tapi.connectivity.CoordinateType: + type: string + enum: + - NO_COORDINATE + - HOLD_OFF_TIME + - WAIT_FOR_NOTIFICATION + tapi.connectivity.CreateConnectivityService: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.createconnectivityservice.Output' + tapi.connectivity.GetConnectionDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.getconnectiondetails.Output' + tapi.connectivity.GetConnectionEndPointDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.getconnectionendpointdetails.Output' + tapi.connectivity.GetConnectivityServiceDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.getconnectivityservicedetails.Output' + tapi.connectivity.GetConnectivityServiceList: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.getconnectivityservicelist.Output' + tapi.connectivity.OwnedNodeEdgePointAugmentation1: + type: object + properties: + cep-list: + $ref: '#/components/schemas/tapi.connectivity.CepList' + x-augmentation: + prefix: tapi-connectivity + namespace: urn:onf:otcc:yang:tapi-connectivity + tapi.connectivity.ProtectionRole: + type: string + enum: + - WORK + - PROTECT + - PROTECTED + - NA + - WORK_RESTORE + - PROTECT_RESTORE + tapi.connectivity.ResilienceConstraint: + type: object + properties: + is-lock-out: + type: boolean + description: "The resource is configured to temporarily not be available\ + \ for use in the protection scheme(s) it is part of.\r\n \ + \ This overrides all other protection control states including forced.\r\ + \n If the item is locked out then it cannot be used under\ + \ any circumstances.\r\n Note: Only relevant when part\ + \ of a protection scheme." + default: false + max-switch-times: + type: integer + description: "Used to limit the maximum swtich times. When work fault disappears\ + \ , and traffic return to the original work path, switch counter reset." + format: int32 + restoration-coordinate-type: + $ref: '#/components/schemas/tapi.connectivity.CoordinateType' + is-coordinated-switching-both-ends: + type: boolean + description: Is operating such that switching at both ends of each flow + acorss the FC is coordinated at both ingress and egress ends. + default: false + hold-off-time: + type: integer + description: "This attribute indicates the time, in milliseconds, between\ + \ declaration of signal degrade or signal fail, and the initialization\ + \ of the protection switching algorithm." + format: int32 + is-frozen: + type: boolean + description: "Temporarily prevents any switch action to be taken and, as\ + \ such, freezes the current state. \r\n Until the freeze\ + \ is cleared, additional near-end external commands are rejected and fault\ + \ condition changes and received APS messages are ignored.\r\n \ + \ All administrative controls of any aspect of protection are\ + \ rejected." + default: false + wait-to-revert-time: + type: integer + description: "If the protection system is revertive, this attribute specifies\ + \ the time, in minutes, to wait after a fault clears on a higher priority\ + \ (preferred) resource before reverting to the preferred resource." + format: int32 + default: 15 + resilience-type: + $ref: '#/components/schemas/tapi.topology.ResilienceType' + preferred-restoration-layer: + type: array + description: Indicate which layer this resilience parameters package configured + for. + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + restore-priority: + type: integer + description: none + format: int32 + reversion-mode: + $ref: '#/components/schemas/tapi.connectivity.ReversionMode' + tapi.connectivity.ResilienceRoute: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + priority: + type: integer + description: "Value of 0 (zero) means 'unspecified priority'.\r\n \ + \ Highest priority is 1, sometimes referred as 'preferred'\ + \ or 'main' or 'intended' route.\r\n 2 has lower priority\ + \ than 1, 3 has lower priority than 2, etc." + format: int32 + route-state: + type: string + description: Current information on the route selection. + description: "This object adds resilience and state attributes to the Route.\r\ + \n When this object is not present, then the Route is intendend\ + \ as 'current' Route of the Connection." + tapi.connectivity.ResilienceRouteWrapper: + type: object + properties: + resilience-route-pac: + $ref: '#/components/schemas/tapi.connectivity.ResilienceRoute' + tapi.connectivity.ReversionMode: + type: string + enum: + - REVERTIVE + - NON-REVERTIVE + tapi.connectivity.Route: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + resilience-route-pac: + $ref: '#/components/schemas/tapi.connectivity.ResilienceRoute' + description: "The Route of a Connection is modeled as a collection of Connection\ + \ End Points.\r\n The logical order of the Connection End Points\ + \ within the Route object can be inferred by the TAPI client by the knowledge\ + \ of the Topology information." + tapi.connectivity.RouteRef: + allOf: + - $ref: '#/components/schemas/tapi.connectivity.ConnectionRef' + - type: object + properties: + route-local-id: + type: string + description: none + x-path: /tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id + description: none + tapi.connectivity.RouteRefWrapper: + type: object + properties: + selected-route: + $ref: '#/components/schemas/tapi.connectivity.RouteRef' + tapi.connectivity.RouteWrapper: + type: object + properties: + route: + $ref: '#/components/schemas/tapi.connectivity.Route' + tapi.connectivity.SelectionControl: + type: string + enum: + - LOCK_OUT + - NORMAL + - MANUAL + - FORCED + tapi.connectivity.SelectionReason: + type: string + enum: + - LOCKOUT + - NORMAL + - MANUAL + - FORCED + - WAIT_TO_REVERT + - SIGNAL_DEGRADE + - SIGNAL_FAIL + tapi.connectivity.ServiceType: + type: string + enum: + - POINT_TO_POINT_CONNECTIVITY + - POINT_TO_MULTIPOINT_CONNECTIVITY + - MULTIPOINT_CONNECTIVITY + - ROOTED_MULTIPOINT_CONNECTIVITY + tapi.connectivity.Switch: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + selected-connection-end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPointRef' + selected-route: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.RouteRef' + selection-control: + $ref: '#/components/schemas/tapi.connectivity.SelectionControl' + selection-reason: + $ref: '#/components/schemas/tapi.connectivity.SelectionReason' + switch-direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + description: "The class models the switched forwarding of traffic (traffic\ + \ flow) between FcPorts (ConnectionEndPoints) and is present where there\ + \ is protection functionality in the FC (Connection). \r\n If\ + \ an FC exposes protection (having two or more FcPorts that provide alternative\ + \ identical inputs/outputs), the FC will have one or more associated FcSwitch\ + \ objects to represent the alternative flow choices visible at the edge\ + \ of the FC.\r\n The FC switch represents and defines a protection\ + \ switch structure encapsulated in the FC. \r\n Essentially performs\ + \ one of the functions of the Protection Group in a traditional model. It\ + \ associates to 2 or more FcPorts each playing the role of a Protection\ + \ Unit. \r\n One or more protection, i.e. standby/backup, FcPorts\ + \ provide protection for one or more working (i.e. regular/main/preferred)\ + \ FcPorts where either protection or working can feed one or more protected\ + \ FcPort.\r\n The switch may be used in revertive or non-revertive\ + \ (symmetric) mode. When in revertive mode it may define a waitToRestore\ + \ time.\r\n It may be used in one of several modes including\ + \ source switch, destination switched, source and destination switched etc\ + \ (covering cases such as 1+1 and 1:1).\r\n It may be locked\ + \ out (prevented from switching), force switched or manual switched.\r\n\ + \ It will indicate switch state and change of state.\r\n \ + \ The switch can be switched away from all sources such that it becomes\ + \ open and hence two coordinated switches can both feed the same LTP so\ + \ long as at least one of the two is switched away from all sources (is\ + \ 'open').\r\n The ability for a Switch to be 'high impedance'\ + \ allows bidirectional ForwardingConstructs to be overlaid on the same bidirectional\ + \ LTP where the appropriate control is enabled to prevent signal conflict.\r\ + \n This ability allows multiple alternate routes to be present\ + \ that otherwise would be in conflict." + tapi.connectivity.SwitchControl: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.connectivity.ResilienceConstraint' + - type: object + properties: + sub-switch-control: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.SwitchControlRef' + switch: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.Switch' + description: "Represents the capability to control and coordinate switches,\ + \ to add/delete/modify FCs and to add/delete/modify LTPs/LPs so as to realize\ + \ a protection scheme." + tapi.connectivity.SwitchControlRef: + allOf: + - $ref: '#/components/schemas/tapi.connectivity.ConnectionRef' + - type: object + properties: + switch-control-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid + description: none + tapi.connectivity.SwitchControlRefWrapper: + type: object + properties: + sub-switch-control: + $ref: '#/components/schemas/tapi.connectivity.SwitchControlRef' + tapi.connectivity.SwitchControlWrapper: + type: object + properties: + switch-control: + $ref: '#/components/schemas/tapi.connectivity.SwitchControl' + tapi.connectivity.SwitchWrapper: + type: object + properties: + switch: + $ref: '#/components/schemas/tapi.connectivity.Switch' + tapi.connectivity.UpdateConnectivityService: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.connectivity.updateconnectivityservice.Output' + tapi.connectivity.createconnectivityservice.Input: + type: object + properties: + topology-constraint: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPoint' + resilience-constraint: + $ref: '#/components/schemas/tapi.connectivity.ResilienceConstraint' + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + state: + type: string + description: none + connectivity-constraint: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityConstraint' + tapi.connectivity.createconnectivityservice.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + tapi.connectivity.deleteconnectivityservice.Input: + type: object + properties: + service-id-or-name: + type: string + description: none + tapi.connectivity.getconnectiondetails.Input: + type: object + properties: + connection-id-or-name: + type: string + description: none + tapi.connectivity.getconnectiondetails.Output: + type: object + properties: + connection: + $ref: '#/components/schemas/tapi.connectivity.Connection' + tapi.connectivity.getconnectionendpointdetails.Input: + type: object + properties: + cep-id-or-name: + type: string + description: none + nep-id-or-name: + type: string + description: none + node-id-or-name: + type: string + description: none + topology-id-or-name: + type: string + description: none + tapi.connectivity.getconnectionendpointdetails.Output: + type: object + properties: + connection-end-point: + $ref: '#/components/schemas/tapi.connectivity.ConnectionEndPoint' + tapi.connectivity.getconnectivityservicedetails.Input: + type: object + properties: + service-id-or-name: + type: string + description: none + tapi.connectivity.getconnectivityservicedetails.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + tapi.connectivity.getconnectivityservicelist.Output: + type: object + properties: + service: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + tapi.connectivity.updateconnectivityservice.Input: + type: object + properties: + service-id-or-name: + type: string + description: none + topology-constraint: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityServiceEndPoint' + resilience-constraint: + $ref: '#/components/schemas/tapi.connectivity.ResilienceConstraint' + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + state: + type: string + description: none + connectivity-constraint: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityConstraint' + tapi.connectivity.updateconnectivityservice.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.connectivity.ConnectivityService' + tapi.notification.AlarmInfo: + type: object + properties: + perceived-severity: + $ref: '#/components/schemas/tapi.notification.PerceivedSeverityType' + probable-cause: + type: string + description: none + service-affecting: + $ref: '#/components/schemas/tapi.notification.ServiceAffecting' + is-transient: + type: boolean + description: none + default: false + tapi.notification.AlarmInfoWrapper: + type: object + properties: + alarm-info: + $ref: '#/components/schemas/tapi.notification.AlarmInfo' + tapi.notification.ContextAugmentation1: + type: object + properties: + notification-context: + $ref: '#/components/schemas/tapi.notification.NotificationContext' + x-augmentation: + prefix: tapi-notification + namespace: urn:onf:otcc:yang:tapi-notification + tapi.notification.CreateNotificationSubscriptionService: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.createnotificationsubscriptionservice.Output' + tapi.notification.DeleteNotificationSubscriptionService: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.deletenotificationsubscriptionservice.Output' + tapi.notification.GetNotificationList: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.getnotificationlist.Output' + tapi.notification.GetNotificationSubscriptionServiceDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.getnotificationsubscriptionservicedetails.Output' + tapi.notification.GetNotificationSubscriptionServiceList: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.getnotificationsubscriptionservicelist.Output' + tapi.notification.GetSupportedNotificationTypes: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.getsupportednotificationtypes.Output' + tapi.notification.NameAndValueChange: + type: object + properties: + value-name: + type: string + description: The name of the value. The value need not have a name. + old-value: + type: string + description: The value + new-value: + type: string + description: The value + tapi.notification.NameAndValueChangeWrapper: + type: object + properties: + changed-attributes: + $ref: '#/components/schemas/tapi.notification.NameAndValueChange' + tapi.notification.Notification: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + target-object-type: + $ref: '#/components/schemas/tapi.notification.ObjectType' + additional-text: + type: string + description: none + event-time-stamp: + type: string + description: none + additional-info: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.NameAndValue' + sequence-number: + type: integer + description: "A monotonous increasing sequence number associated with\ + \ the notification.\r\n The exact semantics of how this\ + \ sequence number is assigned (per channel or subscription or source\ + \ or system) is left undefined." + format: int32 + tca-info: + $ref: '#/components/schemas/tapi.notification.TcaInfo' + target-object-identifier: + type: string + description: none + notification-type: + $ref: '#/components/schemas/tapi.notification.NotificationType' + target-object-name: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.NameAndValue' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + source-indicator: + $ref: '#/components/schemas/tapi.notification.SourceIndicator' + alarm-info: + $ref: '#/components/schemas/tapi.notification.AlarmInfo' + changed-attributes: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NameAndValueChange' + description: none + tapi.notification.NotificationChannel: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + next-sequence-no: + type: integer + description: The sequence number of the next notification that will be + published on the channel + format: int32 + stream-address: + type: string + description: "The address/location/URI of the channel/stream to which\ + \ the subscribed notifications are published.\r\n This\ + \ specifics of this is typically dependent on the implementation protocol\ + \ & mechanism and hence is typed as a string." + description: none + tapi.notification.NotificationChannelWrapper: + type: object + properties: + notification-channel: + $ref: '#/components/schemas/tapi.notification.NotificationChannel' + tapi.notification.NotificationContext: + type: object + properties: + notif-subscription: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + notification: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.Notification' + tapi.notification.NotificationContextWrapper: + type: object + properties: + tapi-notification:notification-context: + $ref: '#/components/schemas/tapi.notification.NotificationContext' + tapi.notification.NotificationSubscriptionService: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + notification: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.Notification' + notification-channel: + $ref: '#/components/schemas/tapi.notification.NotificationChannel' + subscription-state: + $ref: '#/components/schemas/tapi.notification.SubscriptionState' + supported-object-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.ObjectType' + supported-notification-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NotificationType' + subscription-filter: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilter' + description: none + tapi.notification.NotificationSubscriptionServiceWrapper: + type: object + properties: + notif-subscription: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.notification.NotificationType: + type: string + enum: + - OBJECT_CREATION + - OBJECT_DELETION + - ATTRIBUTE_VALUE_CHANGE + - ALARM_EVENT + - THRESHOLD_CROSSING_ALERT + tapi.notification.NotificationWrapper: + type: object + properties: + notification: + $ref: '#/components/schemas/tapi.notification.Notification' + tapi.notification.ObjectType: + type: string + enum: + - TOPOLOGY + - NODE + - LINK + - CONNECTION + - PATH + - CONNECTIVITY_SERVICE + - VIRTUAL_NETWORK_SERVICE + - PATH_COMPUTATION_SERVICE + - NODE_EDGE_POINT + - SERVICE_INTERFACE_POINT + - CONNECTION_END_POINT + - MAINTENANCE_ENTITY_GROUP + - MAINTENANCE_ENTITY + - MEG_END_POINT + - MEG_INTERMEDIATE_POINT + - SWITCH_CONTROL + - SWITCH + - ROUTE + - NODE_RULE_GROUP + - INTER_RULE_GROUP + - RULE + - OAM_JOB + - ACCESS_PORT + - EQUIPMENT + - HOLDER + - PHYSICAL_SPAN + - ABSTRACT_STRAND + - DEVICE + tapi.notification.PerceivedSeverityType: + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - CLEARED + tapi.notification.PerceivedTcaSeverity: + type: string + enum: + - WARNING + - CLEAR + tapi.notification.ServiceAffecting: + type: string + enum: + - SERVICE_AFFECTING + - NOT_SERVICE_AFFECTING + - UNKNOWN + tapi.notification.SourceIndicator: + type: string + enum: + - RESOURCE_OPERATION + - MANAGEMENT_OPERATION + - UNKNOWN + tapi.notification.SubscriptionFilter: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + requested-notification-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NotificationType' + requested-object-identifier: + type: array + description: none + items: + type: string + requested-layer-protocols: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + include-content: + type: boolean + description: Indicates whether the published Notification includes content + or just the Notification Id (which enables retrieval of the notification + at the later stage) + default: false + requested-object-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.ObjectType' + description: none + tapi.notification.SubscriptionFilterWrapper: + type: object + properties: + subscription-filter: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilter' + tapi.notification.SubscriptionState: + type: string + enum: + - SUSPENDED + - ACTIVE + tapi.notification.TcaInfo: + type: object + properties: + threshold-crossing: + $ref: '#/components/schemas/tapi.notification.ThresholdCrossingType' + threshold-parameter: + type: string + description: none + is-transient: + type: boolean + description: none + default: false + threshold-value: + type: integer + description: none + format: int32 + perceived-severity: + $ref: '#/components/schemas/tapi.notification.PerceivedTcaSeverity' + suspect-interval-flag: + type: boolean + description: none + default: false + measurement-interval: + type: string + description: none + tapi.notification.TcaInfoWrapper: + type: object + properties: + tca-info: + $ref: '#/components/schemas/tapi.notification.TcaInfo' + tapi.notification.ThresholdCrossingType: + type: string + enum: + - THRESHOLD_ABOVE + - THRESHOLD_BELOW + - CLEARED + tapi.notification.UpdateNotificationSubscriptionService: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.notification.updatenotificationsubscriptionservice.Output' + tapi.notification.createnotificationsubscriptionservice.Input: + type: object + properties: + subscription-state: + $ref: '#/components/schemas/tapi.notification.SubscriptionState' + subscription-filter: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilter' + tapi.notification.createnotificationsubscriptionservice.Output: + type: object + properties: + subscription-service: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.notification.deletenotificationsubscriptionservice.Input: + type: object + properties: + subscription-id-or-name: + type: string + description: none + tapi.notification.deletenotificationsubscriptionservice.Output: + type: object + properties: + subscription-service: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.notification.getnotificationlist.Input: + type: object + properties: + time-period: + type: string + description: none + subscription-id-or-name: + type: string + description: none + tapi.notification.getnotificationlist.Output: + type: object + properties: + notification: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.Notification' + tapi.notification.getnotificationsubscriptionservicedetails.Input: + type: object + properties: + subscription-id-or-name: + type: string + description: none + tapi.notification.getnotificationsubscriptionservicedetails.Output: + type: object + properties: + subscription-service: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.notification.getnotificationsubscriptionservicelist.Output: + type: object + properties: + subscription-service: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.notification.getsupportednotificationtypes.Output: + type: object + properties: + supported-object-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.ObjectType' + supported-notification-types: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.notification.NotificationType' + tapi.notification.updatenotificationsubscriptionservice.Input: + type: object + properties: + subscription-state: + $ref: '#/components/schemas/tapi.notification.SubscriptionState' + subscription-filter: + $ref: '#/components/schemas/tapi.notification.SubscriptionFilter' + subscription-id-or-name: + type: string + description: none + tapi.notification.updatenotificationsubscriptionservice.Output: + type: object + properties: + subscription-service: + $ref: '#/components/schemas/tapi.notification.NotificationSubscriptionService' + tapi.path.computation.ComputeP2PPath: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.path.computation.computep2ppath.Output' + tapi.path.computation.ContextAugmentation2: + type: object + properties: + path-computation-context: + $ref: '#/components/schemas/tapi.path.computation.PathComputationContext' + x-augmentation: + prefix: tapi-path-computation + namespace: urn:onf:otcc:yang:tapi-path-computation + tapi.path.computation.DeleteP2PPath: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.path.computation.deletep2ppath.Output' + tapi.path.computation.DiversityPolicy: + type: string + enum: + - SRLG + - SRNG + - SNG + - NODE + - LINK + tapi.path.computation.OptimizeP2Ppath: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.path.computation.optimizep2ppath.Output' + tapi.path.computation.Path: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + link: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.LinkRef' + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + direction: + $ref: '#/components/schemas/tapi.common.ForwardingDirection' + description: Path is described by an ordered list of TE Links. A TE Link is + defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by + concatenating link resources (associated with a Link) and the lower-level + connections (cross-connections) in the different nodes + tapi.path.computation.PathComputationContext: + type: object + properties: + path-comp-service: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.path.computation.PathComputationService' + path: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.path.computation.Path' + tapi.path.computation.PathComputationContextWrapper: + type: object + properties: + tapi-path-computation:path-computation-context: + $ref: '#/components/schemas/tapi.path.computation.PathComputationContext' + tapi.path.computation.PathComputationService: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + topology-constraint: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + path: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.path.computation.PathRef' + objective-function: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunction' + end-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPoint' + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + optimization-constraint: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraint' + description: none + tapi.path.computation.PathComputationServiceWrapper: + type: object + properties: + path-comp-service: + $ref: '#/components/schemas/tapi.path.computation.PathComputationService' + tapi.path.computation.PathObjectiveFunction: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + link-utilization: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + bandwidth-optimization: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + cost-optimization: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + resource-sharing: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + concurrent-paths: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + description: none + tapi.path.computation.PathObjectiveFunctionWrapper: + type: object + properties: + objective-function: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunction' + tapi.path.computation.PathOptimizationConstraint: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + traffic-interruption: + $ref: '#/components/schemas/tapi.common.DirectiveValue' + description: none + tapi.path.computation.PathOptimizationConstraintWrapper: + type: object + properties: + optimization-constraint: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraint' + tapi.path.computation.PathRef: + type: object + properties: + path-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-path-computation:path-computation-context/tapi-path-computation:path/tapi-path-computation:uuid + tapi.path.computation.PathRefWrapper: + type: object + properties: + path: + $ref: '#/components/schemas/tapi.path.computation.PathRef' + tapi.path.computation.PathServiceEndPoint: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + role: + $ref: '#/components/schemas/tapi.common.PortRole' + service-interface-point: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRef' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + layer-protocol-qualifier: + type: string + description: none + direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + capacity: + $ref: '#/components/schemas/tapi.common.Capacity' + description: "The association of the FC to LTPs is made via EndPoints.\r\n\ + \ The EndPoint (EP) object class models the access to the FC\ + \ function. \r\n The traffic forwarding between the associated\ + \ EPs of the FC depends upon the type of FC and may be associated with FcSwitch\ + \ object instances. \r\n In cases where there is resilience\ + \ the EndPoint may convey the resilience role of the access to the FC. \r\ + \n It can represent a protected (resilient/reliable) point or\ + \ a protecting (unreliable working or protection) point.\r\n \ + \ The EP replaces the Protection Unit of a traditional protection model.\ + \ \r\n The ForwadingConstruct can be considered as a component\ + \ and the EndPoint as a Port on that component" + tapi.path.computation.PathServiceEndPointWrapper: + type: object + properties: + end-point: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPoint' + tapi.path.computation.PathWrapper: + type: object + properties: + path: + $ref: '#/components/schemas/tapi.path.computation.Path' + tapi.path.computation.RouteObjectiveFunction: + type: string + enum: + - MIN_WORK_ROUTE_HOP + - MIN_WORK_ROUTE_COST + - MIN_WORK_ROUTE_LATENCY + - MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP + - MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST + - MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY + - LOAD_BALANCE_MAX_UNUSED_CAPACITY + tapi.path.computation.RoutingConstraint: + type: object + properties: + is-exclusive: + type: boolean + description: To distinguish if the resources are to be exclusive to the + service + default: true + max-allowed-cost: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriority' + diversity-policy: + $ref: '#/components/schemas/tapi.path.computation.DiversityPolicy' + route-objective-function: + $ref: '#/components/schemas/tapi.path.computation.RouteObjectiveFunction' + cost-characteristic: + type: array + description: The list of costs where each cost relates to some aspect of + the TopologicalEntity. + items: + $ref: '#/components/schemas/tapi.topology.CostCharacteristic' + max-allowed-hops: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriority' + max-allowed-delay: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriority' + latency-characteristic: + type: array + description: The effect on the latency of a queuing process. This only has + significant effect for packet based systems and has a complex characteristic. + items: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristic' + risk-diversity-characteristic: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristic' + route-direction: + $ref: '#/components/schemas/tapi.common.ForwardingDirection' + tapi.path.computation.RoutingConstraintWrapper: + type: object + properties: + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + tapi.path.computation.TopologyConstraint: + type: object + properties: + include-node: + type: array + description: This is a loose constraint - that is it is unordered and could + be a partial list + items: + type: string + exclude-link: + type: array + description: none + items: + type: string + avoid-topology: + type: array + description: none + items: + type: string + exclude-path: + type: array + description: none + items: + type: string + include-link: + type: array + description: 'This is a loose constraint - that is it is unordered and could + be a partial list ' + items: + type: string + preferred-transport-layer: + type: array + description: soft constraint requested by client to indicate the layer(s) + of transport connection that it prefers to carry the service. This could + be same as the service layer or one of the supported server layers + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + exclude-node: + type: array + description: none + items: + type: string + include-topology: + type: array + description: none + items: + type: string + include-path: + type: array + description: none + items: + type: string + tapi.path.computation.TopologyConstraintWrapper: + type: object + properties: + topology-constraint: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + tapi.path.computation.ValueOrPriority: + type: object + properties: + priority: + type: integer + description: none + format: int32 + value: + type: integer + description: none + format: int32 + tapi.path.computation.ValueOrPriorityWrapper: + type: object + properties: + max-allowed-cost: + $ref: '#/components/schemas/tapi.path.computation.ValueOrPriority' + tapi.path.computation.computep2ppath.Input: + type: object + properties: + topology-constraint: + $ref: '#/components/schemas/tapi.path.computation.TopologyConstraint' + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + objective-function: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunction' + sep: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.path.computation.PathServiceEndPoint' + tapi.path.computation.computep2ppath.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.path.computation.PathComputationService' + tapi.path.computation.deletep2ppath.Input: + type: object + properties: + path-id-or-name: + type: string + description: none + tapi.path.computation.deletep2ppath.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.path.computation.PathComputationService' + tapi.path.computation.optimizep2ppath.Input: + type: object + properties: + routing-constraint: + $ref: '#/components/schemas/tapi.path.computation.RoutingConstraint' + path-id-or-name: + type: string + description: none + optimization-constraint: + $ref: '#/components/schemas/tapi.path.computation.PathOptimizationConstraint' + objective-function: + $ref: '#/components/schemas/tapi.path.computation.PathObjectiveFunction' + tapi.path.computation.optimizep2ppath.Output: + type: object + properties: + service: + $ref: '#/components/schemas/tapi.path.computation.PathComputationService' + tapi.topology.ConnectionSpecReference: + type: object + properties: + connection-spec-name: + type: string + description: "The name of the connection type spec.\r\n This\ + \ can be used as a reference to a paper document where full formal machine\ + \ interpretable specs are not supported." + connection-spec-id: + type: string + description: "The reference to a formal spec. \r\n This reference\ + \ need not be provided (e.g., where there is no formal machine interpretable\ + \ spec for the type of connection)." + tapi.topology.ConnectionSpecReferenceWrapper: + type: object + properties: + connection-spec-reference: + $ref: '#/components/schemas/tapi.topology.ConnectionSpecReference' + tapi.topology.ContextAugmentation4: + type: object + properties: + topology-context: + $ref: '#/components/schemas/tapi.topology.TopologyContext' + x-augmentation: + prefix: tapi-topology + namespace: urn:onf:otcc:yang:tapi-topology + tapi.topology.CostCharacteristic: + type: object + properties: + cost-value: + type: string + description: The specific cost. + cost-algorithm: + type: string + description: The cost may vary based upon some properties of the TopologicalEntity. + The rules for the variation are conveyed by the costAlgorithm. + cost-name: + type: string + description: "The cost characteristic will related to some aspect of the\ + \ TopologicalEntity (e.g. $ cost, routing weight). This aspect will be\ + \ conveyed by the costName." + tapi.topology.CostCharacteristicWrapper: + type: object + properties: + cost-characteristic: + $ref: '#/components/schemas/tapi.topology.CostCharacteristic' + tapi.topology.ForwardingRule: + type: string + enum: + - MAY_FORWARD_ACROSS_GROUP + - MUST_FORWARD_ACROSS_GROUP + - CANNOT_FORWARD_ACROSS_GROUP + - NO_STATEMENT_ON_FORWARDING + - INTER_CONNECTION_CONTENTION + tapi.topology.GetLinkDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.topology.getlinkdetails.Output' + tapi.topology.GetNodeDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.topology.getnodedetails.Output' + tapi.topology.GetNodeEdgePointDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.topology.getnodeedgepointdetails.Output' + tapi.topology.GetTopologyDetails: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.topology.gettopologydetails.Output' + tapi.topology.GetTopologyList: + type: object + properties: + output: + $ref: '#/components/schemas/tapi.topology.gettopologylist.Output' + tapi.topology.InterRuleGroup: + allOf: + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.topology.RiskParameterPac' + - $ref: '#/components/schemas/tapi.topology.TransferCostPac' + - $ref: '#/components/schemas/tapi.topology.TransferTimingPac' + - type: object + properties: + associated-node-rule-group: + type: array + description: "The NodeRuleGroups that the InterRuleGroup constrains interconnection\ + \ between.\r\n The CEPs of the NEPs of a referenced NodeRuleGroup\ + \ can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup\ + \ constrained by the rules of the InterRuleGroup." + items: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupRef' + rule: + type: array + description: The list of rules of the InterRuleGroup. + items: + $ref: '#/components/schemas/tapi.topology.Rule' + description: Rules that apply between groups of NEPs. + tapi.topology.InterRuleGroupWrapper: + type: object + properties: + inter-rule-group: + $ref: '#/components/schemas/tapi.topology.InterRuleGroup' + tapi.topology.LatencyCharacteristic: + type: object + properties: + traffic-property-name: + type: string + description: The identifier of the specific traffic property to which the + queuing latency applies. + jitter-characteristic: + type: string + description: "High frequency deviation from true periodicity of a signal\ + \ and therefore a small high rate of change of transfer latency.\r\n \ + \ Applies to TDM systems (and not packet)." + fixed-latency-characteristic: + type: string + description: A TopologicalEntity suffers delay caused by the realization + of the servers (e.g. distance related; FEC encoding etc.) along with some + client specific processing. This is the total average latency effect of + the TopologicalEntity + wander-characteristic: + type: string + description: "Low frequency deviation from true periodicity of a signal\ + \ and therefore a small low rate of change of transfer latency.\r\n \ + \ Applies to TDM systems (and not packet)." + queing-latency-characteristic: + type: string + description: The specific queuing latency for the traffic property. + tapi.topology.LatencyCharacteristicWrapper: + type: object + properties: + latency-characteristic: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristic' + tapi.topology.LayerProtocolTransitionPac: + type: object + properties: + transitioned-layer-protocol-name: + type: array + description: Provides the ordered structure of layer protocol transitions + encapsulated in the TopologicalEntity. The ordering relates to the LinkPort + role. + items: + type: string + tapi.topology.Link: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.topology.LayerProtocolTransitionPac' + - $ref: '#/components/schemas/tapi.topology.RiskParameterPac' + - $ref: '#/components/schemas/tapi.topology.TransferCostPac' + - $ref: '#/components/schemas/tapi.topology.TransferIntegrityPac' + - $ref: '#/components/schemas/tapi.topology.TransferTimingPac' + - $ref: '#/components/schemas/tapi.topology.ValidationPac' + - type: object + properties: + layer-protocol-name: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + resilience-type: + $ref: '#/components/schemas/tapi.topology.ResilienceType' + node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + direction: + $ref: '#/components/schemas/tapi.common.ForwardingDirection' + description: 'The Link object class models effective adjacency between two + or more ForwardingDomains (FD). ' + tapi.topology.LinkRef: + allOf: + - $ref: '#/components/schemas/tapi.topology.TopologyRef' + - type: object + properties: + link-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid + description: none + tapi.topology.LinkRefWrapper: + type: object + properties: + supported-client-link: + $ref: '#/components/schemas/tapi.topology.LinkRef' + tapi.topology.LinkWrapper: + type: object + properties: + link: + $ref: '#/components/schemas/tapi.topology.Link' + tapi.topology.NetworkTopologyService: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + topology: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.TopologyRef' + description: none + tapi.topology.NetworkTopologyServiceWrapper: + type: object + properties: + nw-topology-service: + $ref: '#/components/schemas/tapi.topology.NetworkTopologyService' + tapi.topology.Node: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.topology.TransferCostPac' + - $ref: '#/components/schemas/tapi.topology.TransferIntegrityPac' + - $ref: '#/components/schemas/tapi.topology.TransferTimingPac' + - type: object + properties: + layer-protocol-name: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + encap-topology: + $ref: '#/components/schemas/tapi.topology.TopologyRef' + owned-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePoint' + node-rule-group: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroup' + aggregated-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + description: "The ForwardingDomain (FD) object class models the ForwardingDomain\ + \ topological component which is used to effect forwarding of transport\ + \ characteristic information and offers the potential to enable forwarding.\r\ + \n At the lowest level of recursion, an FD (within a network\ + \ element (NE)) represents a switch matrix (i.e., a fabric). Note that an\ + \ NE can encompass multiple switch matrices (FDs). " + tapi.topology.NodeEdgePoint: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.common.TerminationPac' + - type: object + properties: + link-port-role: + $ref: '#/components/schemas/tapi.common.PortRole' + mapped-service-interface-point: + type: array + description: NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing) + or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load + balancing/Resilience) should be considered experimental + items: + $ref: '#/components/schemas/tapi.common.ServiceInterfacePointRef' + aggregated-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + layer-protocol-name: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + link-port-direction: + $ref: '#/components/schemas/tapi.common.PortDirection' + supported-cep-layer-protocol-qualifier: + type: array + description: none + items: + type: string + description: "The LogicalTerminationPoint (LTP) object class encapsulates\ + \ the termination and adaptation functions of one or more transport layers.\r\ + \n The structure of LTP supports all transport protocols including\ + \ circuit and packet forms." + tapi.topology.NodeEdgePointRef: + allOf: + - $ref: '#/components/schemas/tapi.topology.NodeRef' + - type: object + properties: + node-edge-point-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid + description: none + tapi.topology.NodeEdgePointRefWrapper: + type: object + properties: + node-edge-point: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + tapi.topology.NodeRef: + allOf: + - $ref: '#/components/schemas/tapi.topology.TopologyRef' + - type: object + properties: + node-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid + description: none + tapi.topology.NodeRuleGroup: + allOf: + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.topology.RiskParameterPac' + - $ref: '#/components/schemas/tapi.topology.TransferCostPac' + - $ref: '#/components/schemas/tapi.topology.TransferTimingPac' + - type: object + properties: + inter-rule-group: + type: array + description: "Nested NodeRuleGroups may have InterRuleGroups. The Superior\ + \ NodeRuleGroup contains the nested NodeRuleGroups and their associated\ + \ InterRuleGroups.\r\n This is equivalent to the Node-Topology\ + \ hierarchy." + items: + $ref: '#/components/schemas/tapi.topology.InterRuleGroup' + rule: + type: array + description: The list of rules of the NodeRuleGroup. + items: + $ref: '#/components/schemas/tapi.topology.Rule' + node-rule-group: + type: array + description: "NodeRuleGroups may be nested such that finer grained rules\ + \ may be applied.\r\n A nested rule group should have\ + \ a subset of the NEPs of the superior rule group." + items: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupRef' + node-edge-point: + type: array + description: NEPs and their client CEPs that the rules apply to. + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + description: "Rules that apply to a group of NEPs.\r\n " + tapi.topology.NodeRuleGroupRef: + allOf: + - $ref: '#/components/schemas/tapi.topology.NodeRef' + - type: object + properties: + node-rule-group-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid + description: none + tapi.topology.NodeRuleGroupRefWrapper: + type: object + properties: + associated-node-rule-group: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroupRef' + tapi.topology.NodeRuleGroupWrapper: + type: object + properties: + node-rule-group: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroup' + tapi.topology.PortRoleRule: + type: object + properties: + port-role-rule: + type: array + description: "Where the rule references more than one port role or where\ + \ there are rule intersections either as a result of overlay of rules\ + \ or inter rule group usage indicates role matching criteria for a connection\ + \ following the rules.\r\n For example if two port roles,\ + \ 'a' and 'b', are listed and the port role rule is 'different', this\ + \ means that a connection connecting points in that group must have port\ + \ roles that are different for each CEP in that group.\r\n \ + \ In the example if a connection can have n ports of role 'a' and\ + \ m ports of role 'b' then a maximum of two ports can be drawn from the\ + \ NEPs of the group and where there are two, one must be role 'a' and\ + \ one must be role 'b'." + items: + type: string + port-role: + type: array + description: The role(s) of the port(s) considered in the rule. + items: + type: string + tapi.topology.PortRoleRuleWrapper: + type: object + properties: + cep-port-role: + $ref: '#/components/schemas/tapi.topology.PortRoleRule' + tapi.topology.ProtectionType: + type: string + enum: + - NO_PROTECTON + - ONE_PLUS_ONE_PROTECTION + - ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION + - PERMANENT_ONE_PLUS_ONE_PROTECTION + - ONE_FOR_ONE_PROTECTION + - DYNAMIC_RESTORATION + - PRE_COMPUTED_RESTORATION + - ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION + tapi.topology.ResilienceType: + type: object + properties: + restoration-policy: + $ref: '#/components/schemas/tapi.topology.RestorationPolicy' + protection-type: + $ref: '#/components/schemas/tapi.topology.ProtectionType' + tapi.topology.ResilienceTypeWrapper: + type: object + properties: + resilience-type: + $ref: '#/components/schemas/tapi.topology.ResilienceType' + tapi.topology.RestorationPolicy: + type: string + enum: + - PER_DOMAIN_RESTORATION + - END_TO_END_RESTORATION + - NA + tapi.topology.RiskCharacteristic: + type: object + properties: + risk-characteristic-name: + type: string + description: "The name of the risk characteristic. The characteristic may\ + \ be related to a specific degree of closeness.\r\n For\ + \ example a particular characteristic may apply to failures that are localized\ + \ (e.g. to one side of a road) where as another characteristic may relate\ + \ to failures that have a broader impact (e.g. both sides of a road that\ + \ crosses a bridge).\r\n Depending upon the importance\ + \ of the traffic being routed different risk characteristics will be evaluated." + risk-identifier-list: + type: array + description: A list of the identifiers of each physical/geographic unit + (with the specific risk characteristic) that is related to a segment of + the TopologicalEntity. + items: + type: string + tapi.topology.RiskCharacteristicWrapper: + type: object + properties: + risk-diversity-characteristic: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristic' + tapi.topology.RiskParameterPac: + type: object + properties: + risk-characteristic: + type: array + description: A list of risk characteristics for consideration in an analysis + of shared risk. Each element of the list represents a specific risk consideration. + items: + $ref: '#/components/schemas/tapi.topology.RiskCharacteristic' + tapi.topology.Rule: + allOf: + - $ref: '#/components/schemas/tapi.common.LocalClass' + - type: object + properties: + complex-rule: + type: array + description: Allows for more complex rules where the basic rule system + is not sufficient. + items: + type: string + rule-type: + $ref: '#/components/schemas/tapi.topology.RuleType' + signal-property: + $ref: '#/components/schemas/tapi.topology.SignalPropertyRule' + connection-spec-reference: + type: array + description: "Identifies the type of connection that the rule applies\ + \ to. \r\n If the attribute is not present then the rule\ + \ applies to all types of connection supported by the device." + items: + $ref: '#/components/schemas/tapi.topology.ConnectionSpecReference' + cep-port-role: + type: array + description: "Indicates the port role to which the rule applies. \r\n\ + \ The port role is interpreted in the context of the\ + \ connection type which is identified by the connection spec. \r\n \ + \ The port role is not meaningful in the absence of a\ + \ connection spec reference.\r\n If a node rule group\ + \ carries a port role, that role applies also to the associated inter\ + \ rule where the combination of the roles in the node rule groups at\ + \ the ends of the inter group rule define the connection orientation.\r\ + \n For example a root-and-leaf connection may be used\ + \ in a node where a node rule group collects one set of NEPs has the\ + \ port role 'root' and another node rule group collects another set\ + \ of NEPs has the port role 'leaf' where these are joined by an inter\ + \ rule group. This combination specifies an allowed orientation of the\ + \ root-and-leaf connection.\r\n No port role statement\ + \ means all port roles are allowed." + items: + $ref: '#/components/schemas/tapi.topology.PortRoleRule' + cep-direction: + type: array + description: "cep direction is a list of port directions that the rule\ + \ applies to.\r\n No entry means all cep directions." + items: + $ref: '#/components/schemas/tapi.common.PortDirection' + override-priority: + type: integer + description: "The overridePriority allows for one rule in a rule group\ + \ to override another.\r\n Priority n rules override\ + \ priority n+1 rules.\r\n Rules of the same priority\ + \ override as follows (n overrides n+1):\r\n 1 - MustNot\r\ + \n 2 - Must\r\n 3 - May\r\n \ + \ 4 - Null\r\n Within a rule the flexibility rules\ + \ (signal, port role...) override as follows (n overriedes n+1):\r\n\ + \ 1 - Any\r\n 2 - Same\r\n \ + \ 3 - Different\r\n Where there are two or more 'Same'\ + \ rules, they will form an intersection where all must be met.\r\n \ + \ " + format: int32 + layer-protocol-qualifier: + type: array + description: "Qualifies a rule for a particular layerProtocol identifying\ + \ the qualifiers that the rule apples to.\r\n If the\ + \ attribute is not present then the rule applies to all relevant qualifiers\ + \ of the layer protocol of the parent entity." + items: + type: string + forwarding-rule: + $ref: '#/components/schemas/tapi.topology.ForwardingRule' + description: "Single complex rule statememt.\r\n A Node with no\ + \ rule group has no restrictions and is essentially May/Any\r\n \ + \ A node rule group constrain the CEP connectability in the Node.\r\n\ + \ A connection from a NEP must abide by all rules that relate\ + \ to that NEP\r\n Rules that are for a particular layerProtocolQualifier,\ + \ connectionSpecReference, cepPortRole and cepDirection combination must\ + \ be abided by in combination as dictated by overridePriority.\r\n \ + \ If a particular\r\n - connectionSpecReference does not\ + \ have any rule statements then it is not supported and connections of that\ + \ type are not possible within the rule group.\r\n - cepPortRole\ + \ of a particular connectionSpecReference does not have any rule statements\ + \ then it is not supported and connections of that connectionSpecReference\ + \ (type) cannot have that cepPortRole for CEPs from NEPs in that rule group.\r\ + \n - cepDirection for a particular connectionSpecReference does\ + \ not have any rule statements then it is not supported and connections\ + \ of that connectionSpecReference (type) cannot have that cepPortDirection\ + \ for CEPs from NEPs in that rule group.\r\n Rules that are for\ + \ different layerProtocolQualifiers or connectionSpecReferences are independent\ + \ and provide options for connection in the rule group.\r\n Some\ + \ rules may apply to multiple connectionSpecReferences and all cepPortRoles\ + \ and all cepDirections." + tapi.topology.RuleType: + type: string + enum: + - FORWARDING + - CAPACITY + - COST + - TIMING + - RISK + - GROUPING + tapi.topology.RuleWrapper: + type: object + properties: + rule: + $ref: '#/components/schemas/tapi.topology.Rule' + tapi.topology.SignalPropertyRule: + type: object + properties: + number-of-signal-values: + type: integer + description: The number of instances of this specific property that can + be supported by the group. + format: int32 + applicable-signal-value: + type: array + description: Specific values of the signal property to which the rule applies. + items: + type: string + signal-property-value-rule: + type: string + description: Indicates how the signal properties should be accounted for. + signal-property-name: + type: string + description: The name of the signal property to which the rule applies. + tapi.topology.SignalPropertyRuleWrapper: + type: object + properties: + signal-property: + $ref: '#/components/schemas/tapi.topology.SignalPropertyRule' + tapi.topology.Topology: + allOf: + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - type: object + properties: + layer-protocol-name: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + link: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.Link' + node: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.Node' + description: "The ForwardingDomain (FD) object class models the ForwardingDomain\ + \ topological component which is used to effect forwarding of transport\ + \ characteristic information and offers the potential to enable forwarding.\ + \ \r\n At the lowest level of recursion, an FD (within a network\ + \ element (NE)) represents a switch matrix (i.e., a fabric). Note that an\ + \ NE can encompass multiple switch matrices (FDs). " + tapi.topology.TopologyContext: + type: object + properties: + nw-topology-service: + $ref: '#/components/schemas/tapi.topology.NetworkTopologyService' + topology: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.Topology' + tapi.topology.TopologyContextWrapper: + type: object + properties: + tapi-topology:topology-context: + $ref: '#/components/schemas/tapi.topology.TopologyContext' + tapi.topology.TopologyRef: + type: object + properties: + topology-uuid: + type: string + description: none + x-path: /tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid + tapi.topology.TopologyRefWrapper: + type: object + properties: + topology: + $ref: '#/components/schemas/tapi.topology.TopologyRef' + tapi.topology.TopologyWrapper: + type: object + properties: + topology: + $ref: '#/components/schemas/tapi.topology.Topology' + tapi.topology.TransferCostPac: + type: object + properties: + cost-characteristic: + type: array + description: The list of costs where each cost relates to some aspect of + the TopologicalEntity. + items: + $ref: '#/components/schemas/tapi.topology.CostCharacteristic' + tapi.topology.TransferIntegrityPac: + type: object + properties: + error-characteristic: + type: string + description: "Describes the degree to which the signal propagated can be\ + \ errored.\r\n Applies to TDM systems as the errored signal\ + \ will be propagated and not packet as errored packets will be discarded." + unavailable-time-characteristic: + type: string + description: Describes the duration for which there may be no valid signal + propagated. + server-integrity-process-characteristic: + type: string + description: Describes the effect of any server integrity enhancement process + on the characteristics of the TopologicalEntity. + delivery-order-characteristic: + type: string + description: "Describes the degree to which packets will be delivered out\ + \ of sequence.\r\n Does not apply to TDM as the TDM protocols\ + \ maintain strict order." + repeat-delivery-characteristic: + type: string + description: "Primarily applies to packet systems where a packet may be\ + \ delivered more than once (in fault recovery for example).\r\n \ + \ It can also apply to TDM where several frames may be received\ + \ twice due to switching in a system with a large differential propagation\ + \ delay." + loss-characteristic: + type: string + description: "Describes the acceptable characteristic of lost packets where\ + \ loss may result from discard due to errors or overflow.\r\n \ + \ Applies to packet systems and not TDM (as for TDM errored signals\ + \ are propagated unless grossly errored and overflow/underflow turns into\ + \ timing slips)." + tapi.topology.TransferTimingPac: + type: object + properties: + latency-characteristic: + type: array + description: The effect on the latency of a queuing process. This only has + significant effect for packet based systems and has a complex characteristic. + items: + $ref: '#/components/schemas/tapi.topology.LatencyCharacteristic' + tapi.topology.ValidationMechanism: + type: object + properties: + layer-protocol-adjacency-validated: + type: string + description: State of validatiion + validation-mechanism: + type: string + description: Name of mechanism used to validate adjacency + validation-robustness: + type: string + description: Quality of validation (i.e. how likely is the stated validation + to be invalid) + tapi.topology.ValidationMechanismWrapper: + type: object + properties: + validation-mechanism: + $ref: '#/components/schemas/tapi.topology.ValidationMechanism' + tapi.topology.ValidationPac: + type: object + properties: + validation-mechanism: + type: array + description: Provides details of the specific validation mechanism(s) used + to confirm the presence of an intended topologicalEntity. + items: + $ref: '#/components/schemas/tapi.topology.ValidationMechanism' + tapi.topology.getlinkdetails.Input: + type: object + properties: + link-id-or-name: + type: string + description: none + topology-id-or-name: + type: string + description: none + tapi.topology.getlinkdetails.Output: + type: object + properties: + link: + $ref: '#/components/schemas/tapi.topology.Link' + tapi.topology.getnodedetails.Input: + type: object + properties: + node-id-or-name: + type: string + description: none + topology-id-or-name: + type: string + description: none + tapi.topology.getnodedetails.Output: + type: object + properties: + node: + $ref: '#/components/schemas/tapi.topology.Node' + tapi.topology.getnodeedgepointdetails.Input: + type: object + properties: + ep-id-or-name: + type: string + description: none + node-id-or-name: + type: string + description: none + topology-id-or-name: + type: string + description: none + tapi.topology.getnodeedgepointdetails.Output: + type: object + properties: + node-edge-point: + $ref: '#/components/schemas/tapi.topology.NodeEdgePoint' + tapi.topology.gettopologydetails.Input: + type: object + properties: + topology-id-or-name: + type: string + description: none + tapi.topology.gettopologydetails.Output: + type: object + properties: + topology: + $ref: '#/components/schemas/tapi.topology.Topology' + tapi.topology.gettopologylist.Output: + type: object + properties: + topology: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.Topology' + tapi.topology.node.OwnedNodeEdgePoint: + allOf: + - $ref: '#/components/schemas/tapi.connectivity.OwnedNodeEdgePointAugmentation1' + - $ref: '#/components/schemas/tapi.topology.NodeEdgePoint' + tapi.topology.node.OwnedNodeEdgePointWrapper: + type: object + properties: + owned-node-edge-point: + $ref: '#/components/schemas/tapi.topology.node.OwnedNodeEdgePoint' + tapi.topology.topology.Node: + allOf: + - $ref: '#/components/schemas/tapi.common.AdminStatePac' + - $ref: '#/components/schemas/tapi.common.CapacityPac' + - $ref: '#/components/schemas/tapi.common.GlobalClass' + - $ref: '#/components/schemas/tapi.topology.TransferCostPac' + - $ref: '#/components/schemas/tapi.topology.TransferIntegrityPac' + - $ref: '#/components/schemas/tapi.topology.TransferTimingPac' + - type: object + properties: + layer-protocol-name: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.common.LayerProtocolName' + encap-topology: + $ref: '#/components/schemas/tapi.topology.TopologyRef' + owned-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.node.OwnedNodeEdgePoint' + node-rule-group: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeRuleGroup' + aggregated-node-edge-point: + type: array + description: none + items: + $ref: '#/components/schemas/tapi.topology.NodeEdgePointRef' + description: none + tapi.topology.topology.NodeWrapper: + type: object + properties: + node: + $ref: '#/components/schemas/tapi.topology.topology.Node' + operations_tapicommongetserviceinterfacepointdetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.common.getserviceinterfacepointdetails.Input' + operations_tapicommonupdateserviceinterfacepoint_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.common.updateserviceinterfacepoint.Input' + operations_tapiconnectivitycreateconnectivityservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.createconnectivityservice.Input' + operations_tapiconnectivitydeleteconnectivityservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.deleteconnectivityservice.Input' + operations_tapiconnectivitygetconnectiondetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.getconnectiondetails.Input' + operations_tapiconnectivitygetconnectionendpointdetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.getconnectionendpointdetails.Input' + operations_tapiconnectivitygetconnectivityservicedetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.getconnectivityservicedetails.Input' + operations_tapiconnectivityupdateconnectivityservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.connectivity.updateconnectivityservice.Input' + operations_tapinotificationcreatenotificationsubscriptionservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.notification.createnotificationsubscriptionservice.Input' + operations_tapinotificationdeletenotificationsubscriptionservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.notification.deletenotificationsubscriptionservice.Input' + operations_tapinotificationgetnotificationlist_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.notification.getnotificationlist.Input' + operations_tapinotificationgetnotificationsubscriptionservicedetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.notification.getnotificationsubscriptionservicedetails.Input' + operations_tapinotificationupdatenotificationsubscriptionservice_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.notification.updatenotificationsubscriptionservice.Input' + operations_tapipathcomputationcomputep2ppath_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.path.computation.computep2ppath.Input' + operations_tapipathcomputationdeletep2ppath_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.path.computation.deletep2ppath.Input' + operations_tapipathcomputationoptimizep2ppath_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.path.computation.optimizep2ppath.Input' + operations_tapitopologygetlinkdetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.topology.getlinkdetails.Input' + operations_tapitopologygetnodedetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.topology.getnodedetails.Input' + operations_tapitopologygetnodeedgepointdetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.topology.getnodeedgepointdetails.Input' + operations_tapitopologygettopologydetails_body: + type: object + properties: + input: + $ref: '#/components/schemas/tapi.topology.gettopologydetails.Input' +x-original-swagger-version: "2.0" + diff --git a/hackfest/tapi/server/tapi_server/test/__init__.py b/hackfest/tapi/server/tapi_server/test/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4f5c01f4cbde45579c46cc85a60a93d1b9f0f0d3 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/__init__.py @@ -0,0 +1,16 @@ +import logging + +import connexion +from flask_testing import TestCase + +from tapi_server.encoder import JSONEncoder + + +class BaseTestCase(TestCase): + + def create_app(self): + logging.getLogger('connexion.operation').setLevel('ERROR') + app = connexion.App(__name__, specification_dir='../swagger/') + app.app.json_encoder = JSONEncoder + app.add_api('swagger.yaml') + return app.app diff --git a/hackfest/tapi/server/tapi_server/test/test_tapi_common_controller.py b/hackfest/tapi/server/tapi_server/test/test_tapi_common_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2566442c18d6fe2f13a880ef15114bbd9c4388dc --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/test_tapi_common_controller.py @@ -0,0 +1,420 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from tapi_server.models.operations_tapicommongetserviceinterfacepointdetails_body import OperationsTapicommongetserviceinterfacepointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapicommonupdateserviceinterfacepoint_body import OperationsTapicommonupdateserviceinterfacepointBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_context_wrapper import TapiCommonContextWrapper # noqa: E501 +from tapi_server.models.tapi_common_get_service_interface_point_details import TapiCommonGetServiceInterfacePointDetails # noqa: E501 +from tapi_server.models.tapi_common_get_service_interface_point_list import TapiCommonGetServiceInterfacePointList # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_wrapper import TapiCommonServiceInterfacePointWrapper # noqa: E501 +from tapi_server.test import BaseTestCase + + +class TestTapiCommonController(BaseTestCase): + """TapiCommonController integration test stubs""" + + def test_data_tapi_commoncontext_delete(self): + """Test case for data_tapi_commoncontext_delete + + removes tapi.common.Context + """ + response = self.client.open( + '/data/tapi-common:context/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_get(self): + """Test case for data_tapi_commoncontext_get + + returns tapi.common.Context + """ + response = self.client.open( + '/data/tapi-common:context/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_name_post(self): + """Test case for data_tapi_commoncontext_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/name/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/name={value-name}/'.format(value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/name={value-name}/'.format(value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/name={value-name}/'.format(value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_post(self): + """Test case for data_tapi_commoncontext_post + + creates tapi.common.Context + """ + body = TapiCommonContextWrapper() + response = self.client.open( + '/data/tapi-common:context/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_put(self): + """Test case for data_tapi_commoncontext_put + + creates or updates tapi.common.Context + """ + body = TapiCommonContextWrapper() + response = self.client.open( + '/data/tapi-common:context/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_point_post(self): + """Test case for data_tapi_commoncontext_service_interface_point_post + + creates tapi.common.ServiceInterfacePoint + """ + body = TapiCommonServiceInterfacePointWrapper() + response = self.client.open( + '/data/tapi-common:context/service-interface-point/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/available-capacity/total-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_delete(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_delete + + removes tapi.common.ServiceInterfacePoint + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_get + + returns tapi.common.ServiceInterfacePoint + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_name_post(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_put(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_put + + creates or updates tapi.common.ServiceInterfacePoint + """ + body = TapiCommonServiceInterfacePointWrapper() + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_service_interface_pointuuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_commonget_service_interface_point_details_post(self): + """Test case for operations_tapi_commonget_service_interface_point_details_post + + operates on tapi.common.GetServiceInterfacePointDetails + """ + body = OperationsTapicommongetserviceinterfacepointdetailsBody() + response = self.client.open( + '/operations/tapi-common:get-service-interface-point-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_commonget_service_interface_point_list_post(self): + """Test case for operations_tapi_commonget_service_interface_point_list_post + + + """ + response = self.client.open( + '/operations/tapi-common:get-service-interface-point-list/', + method='POST') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_commonupdate_service_interface_point_post(self): + """Test case for operations_tapi_commonupdate_service_interface_point_post + + operates on tapi.common.UpdateServiceInterfacePoint + """ + body = OperationsTapicommonupdateserviceinterfacepointBody() + response = self.client.open( + '/operations/tapi-common:update-service-interface-point/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/tapi/server/tapi_server/test/test_tapi_connectivity_controller.py b/hackfest/tapi/server/tapi_server/test/test_tapi_connectivity_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..4e909a16114fa0d4373265273230427352afbd97 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/test_tapi_connectivity_controller.py @@ -0,0 +1,2124 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from tapi_server.models.operations_tapiconnectivitycreateconnectivityservice_body import OperationsTapiconnectivitycreateconnectivityserviceBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitydeleteconnectivityservice_body import OperationsTapiconnectivitydeleteconnectivityserviceBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectiondetails_body import OperationsTapiconnectivitygetconnectiondetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectionendpointdetails_body import OperationsTapiconnectivitygetconnectionendpointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivitygetconnectivityservicedetails_body import OperationsTapiconnectivitygetconnectivityservicedetailsBody # noqa: E501 +from tapi_server.models.operations_tapiconnectivityupdateconnectivityservice_body import OperationsTapiconnectivityupdateconnectivityserviceBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_common_time_range_wrapper import TapiCommonTimeRangeWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_cep_list_wrapper import TapiConnectivityCepListWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_cep_role_wrapper import TapiConnectivityCepRoleWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_end_point_ref_wrapper import TapiConnectivityConnectionEndPointRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_end_point_wrapper import TapiConnectivityConnectionEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_ref_wrapper import TapiConnectivityConnectionRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_spec_reference_wrapper import TapiConnectivityConnectionSpecReferenceWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connection_wrapper import TapiConnectivityConnectionWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_context_wrapper import TapiConnectivityConnectivityContextWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_ref_wrapper import TapiConnectivityConnectivityServiceEndPointRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_end_point_wrapper import TapiConnectivityConnectivityServiceEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_ref_wrapper import TapiConnectivityConnectivityServiceRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_connectivity_service_wrapper import TapiConnectivityConnectivityServiceWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_create_connectivity_service import TapiConnectivityCreateConnectivityService # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connection_details import TapiConnectivityGetConnectionDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connection_end_point_details import TapiConnectivityGetConnectionEndPointDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connectivity_service_details import TapiConnectivityGetConnectivityServiceDetails # noqa: E501 +from tapi_server.models.tapi_connectivity_get_connectivity_service_list import TapiConnectivityGetConnectivityServiceList # noqa: E501 +from tapi_server.models.tapi_connectivity_resilience_route_wrapper import TapiConnectivityResilienceRouteWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_route_ref_wrapper import TapiConnectivityRouteRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_route_wrapper import TapiConnectivityRouteWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_control_ref_wrapper import TapiConnectivitySwitchControlRefWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_control_wrapper import TapiConnectivitySwitchControlWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_switch_wrapper import TapiConnectivitySwitchWrapper # noqa: E501 +from tapi_server.models.tapi_connectivity_update_connectivity_service import TapiConnectivityUpdateConnectivityService # noqa: E501 +from tapi_server.models.tapi_path_computation_value_or_priority_wrapper import TapiPathComputationValueOrPriorityWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_ref_wrapper import TapiTopologyLinkRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_edge_point_ref_wrapper import TapiTopologyNodeEdgePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_resilience_type_wrapper import TapiTopologyResilienceTypeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server.test import BaseTestCase + + +class TestTapiConnectivityController(BaseTestCase): + """TapiConnectivityController integration test stubs""" + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/'.format(uuid='uuid_example', topology_uuid='topology_uuid_example', node_uuid='node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_spec_reference_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_connection_spec_reference_get + + returns tapi.connectivity.ConnectionSpecReference + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-spec-reference/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_get + + returns tapi.connectivity.Connection + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_lower_connectionconnection_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_lower_connectionconnection_uuid_get + + returns tapi.connectivity.ConnectionRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/lower-connection={connection-uuid}/'.format(uuid='uuid_example', connection_uuid='connection_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/'.format(uuid='uuid_example', local_id='local_id_example', topology_uuid='topology_uuid_example', node_uuid='node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_get + + returns tapi.connectivity.Route + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_get + + returns tapi.connectivity.ResilienceRoute + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_routelocal_id_resilience_route_pac_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_supported_client_linktopology_uuidlink_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_supported_client_linktopology_uuidlink_uuid_get + + returns tapi.topology.LinkRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/supported-client-link={topology-uuid},{link-uuid}/'.format(uuid='uuid_example', topology_uuid='topology_uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_get + + returns tapi.connectivity.SwitchControl + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/name={value-name}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_resilience_type_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_resilience_type_get + + returns tapi.topology.ResilienceType + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/resilience-type/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_sub_switch_controlconnection_uuidsub_switch_control_switch_control_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_sub_switch_controlconnection_uuidsub_switch_control_switch_control_uuid_get + + returns tapi.connectivity.SwitchControlRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/sub-switch-control={connection-uuid},{sub-switch-control-switch-control-uuid}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', connection_uuid='connection_uuid_example', sub_switch_control_switch_control_uuid='sub_switch_control_switch_control_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_get + + returns tapi.connectivity.Switch + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/name={value-name}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', local_id='local_id_example', topology_uuid='topology_uuid_example', node_uuid='node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_routeconnection_uuidroute_local_id_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectionuuid_switch_controlswitch_control_uuid_switchlocal_id_selected_routeconnection_uuidroute_local_id_get + + returns tapi.connectivity.RouteRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-route={connection-uuid},{route-local-id}/'.format(uuid='uuid_example', switch_control_uuid='switch_control_uuid_example', local_id='local_id_example', connection_uuid='connection_uuid_example', route_local_id='route_local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_service_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_service_post + + creates tapi.connectivity.ConnectivityService + """ + body = TapiConnectivityConnectivityServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_connectionconnection_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_connectionconnection_uuid_get + + returns tapi.connectivity.ConnectionRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/connection={connection-uuid}/'.format(uuid='uuid_example', connection_uuid='connection_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_delete + + removes tapi.connectivity.ConnectivityServiceRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_get + + returns tapi.connectivity.ConnectivityServiceRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_post + + creates tapi.connectivity.ConnectivityServiceRef + """ + body = TapiConnectivityConnectivityServiceRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_coroute_inclusion_put + + creates or updates tapi.connectivity.ConnectivityServiceRef + """ + body = TapiConnectivityConnectivityServiceRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristic_post + + creates tapi.topology.CostCharacteristic + """ + body = TapiTopologyCostCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_delete + + removes tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_cost_characteristiccost_name_put + + creates or updates tapi.topology.CostCharacteristic + """ + body = TapiTopologyCostCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_delete + + removes tapi.connectivity.ConnectivityService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusion_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusion_post + + creates tapi.connectivity.ConnectivityServiceRef + """ + body = TapiConnectivityConnectivityServiceRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_delete + + removes tapi.connectivity.ConnectivityServiceRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion={connectivity-service-uuid}/'.format(uuid='uuid_example', connectivity_service_uuid='connectivity_service_uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_get + + returns tapi.connectivity.ConnectivityServiceRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion={connectivity-service-uuid}/'.format(uuid='uuid_example', connectivity_service_uuid='connectivity_service_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_diversity_exclusionconnectivity_service_uuid_put + + creates or updates tapi.connectivity.ConnectivityServiceRef + """ + body = TapiConnectivityConnectivityServiceRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion={connectivity-service-uuid}/'.format(uuid='uuid_example', connectivity_service_uuid='connectivity_service_uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_point_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_point_post + + creates tapi.connectivity.ConnectivityServiceEndPoint + """ + body = TapiConnectivityConnectivityServiceEndPointWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete + + removes tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post + + creates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put + + creates or updates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_delete + + removes tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_post + + creates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_put + + creates or updates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_capacity_total_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_connection_end_pointtopology_uuidnode_uuidnode_edge_point_uuidconnection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/'.format(uuid='uuid_example', local_id='local_id_example', topology_uuid='topology_uuid_example', node_uuid='node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_delete + + removes tapi.connectivity.ConnectivityServiceEndPoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_get + + returns tapi.connectivity.ConnectivityServiceEndPoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_name_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_delete + + removes tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_get + + returns tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_post + + creates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_peer_fwd_connectivity_service_end_point_put + + creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_delete + + removes tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_get + + returns tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_post + + creates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_protecting_connectivity_service_end_point_put + + creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_put + + creates or updates tapi.connectivity.ConnectivityServiceEndPoint + """ + body = TapiConnectivityConnectivityServiceEndPointWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_delete + + removes tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_get + + returns tapi.connectivity.ConnectivityServiceEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_post + + creates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_server_connectivity_service_end_point_put + + creates or updates tapi.connectivity.ConnectivityServiceEndPointRef + """ + body = TapiConnectivityConnectivityServiceEndPointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_delete + + removes tapi.common.ServiceInterfacePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_get + + returns tapi.common.ServiceInterfacePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_post + + creates tapi.common.ServiceInterfacePointRef + """ + body = TapiCommonServiceInterfacePointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_end_pointlocal_id_service_interface_point_put + + creates or updates tapi.common.ServiceInterfacePointRef + """ + body = TapiCommonServiceInterfacePointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_get + + returns tapi.connectivity.ConnectivityService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristic_post + + creates tapi.topology.LatencyCharacteristic + """ + body = TapiTopologyLatencyCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_delete + + removes tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_latency_characteristictraffic_property_name_put + + creates or updates tapi.topology.LatencyCharacteristic + """ + body = TapiTopologyLatencyCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_cost_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_delay_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_max_allowed_hops_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_name_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_put + + creates or updates tapi.connectivity.ConnectivityService + """ + body = TapiConnectivityConnectivityServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_committed_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_delete + + removes tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_peak_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_post + + creates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_bandwidth_profile_put + + creates or updates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_delete + + removes tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_post + + creates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_put + + creates or updates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_requested_capacity_total_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_delete + + removes tapi.topology.ResilienceType + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_get + + returns tapi.topology.ResilienceType + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_post + + creates tapi.topology.ResilienceType + """ + body = TapiTopologyResilienceTypeWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_resilience_type_put + + creates or updates tapi.topology.ResilienceType + """ + body = TapiTopologyResilienceTypeWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristic_post + + creates tapi.topology.RiskCharacteristic + """ + body = TapiTopologyRiskCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_delete + + removes tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_risk_diversity_characteristicrisk_characteristic_name_put + + creates or updates tapi.topology.RiskCharacteristic + """ + body = TapiTopologyRiskCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_delete + + removes tapi.common.TimeRange + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_get + + returns tapi.common.TimeRange + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_post + + creates tapi.common.TimeRange + """ + body = TapiCommonTimeRangeWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_connectivity_serviceuuid_schedule_put + + creates or updates tapi.common.TimeRange + """ + body = TapiCommonTimeRangeWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_delete(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_delete + + removes tapi.connectivity.ConnectivityContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_get(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_get + + returns tapi.connectivity.ConnectivityContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_post(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_post + + creates tapi.connectivity.ConnectivityContext + """ + body = TapiConnectivityConnectivityContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_connectivityconnectivity_context_put(self): + """Test case for data_tapi_commoncontext_tapi_connectivityconnectivity_context_put + + creates or updates tapi.connectivity.ConnectivityContext + """ + body = TapiConnectivityConnectivityContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-connectivity:connectivity-context/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_aggregated_connection_end_pointtopology_uuidaggregated_connection_end_point_node_uuidnode_edge_point_uuidaggregated_connection_end_point_connection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_aggregated_connection_end_pointtopology_uuidaggregated_connection_end_point_node_uuidnode_edge_point_uuidaggregated_connection_end_point_connection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/aggregated-connection-end-point={topology-uuid},{aggregated-connection-end-point-node-uuid},{node-edge-point-uuid},{aggregated-connection-end-point-connection-end-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example', topology_uuid='topology_uuid_example', aggregated_connection_end_point_node_uuid='aggregated_connection_end_point_node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example', aggregated_connection_end_point_connection_end_point_uuid='aggregated_connection_end_point_connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_connection_spec_reference_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_connection_spec_reference_get + + returns tapi.connectivity.ConnectionSpecReference + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/connection-spec-reference/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_cep_role_get + + returns tapi.connectivity.CepRole + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_client_node_edge_pointtopology_uuidclient_node_edge_point_node_uuidnode_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_client_node_edge_pointtopology_uuidclient_node_edge_point_node_uuidnode_edge_point_uuid_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/client-node-edge-point={topology-uuid},{client-node-edge-point-node-uuid},{node-edge-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example', topology_uuid='topology_uuid_example', client_node_edge_point_node_uuid='client_node_edge_point_node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_get + + returns tapi.connectivity.ConnectionEndPoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_parent_node_edge_point_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_connection_end_pointconnection_end_point_uuid_parent_node_edge_point_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/parent-node-edge-point/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', connection_end_point_uuid='connection_end_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_tapi_connectivitycep_list_get + + returns tapi.connectivity.CepList + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivitycreate_connectivity_service_post(self): + """Test case for operations_tapi_connectivitycreate_connectivity_service_post + + operates on tapi.connectivity.CreateConnectivityService + """ + body = OperationsTapiconnectivitycreateconnectivityserviceBody() + response = self.client.open( + '/operations/tapi-connectivity:create-connectivity-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivitydelete_connectivity_service_post(self): + """Test case for operations_tapi_connectivitydelete_connectivity_service_post + + operates on tapi.connectivity.DeleteConnectivityService + """ + body = OperationsTapiconnectivitydeleteconnectivityserviceBody() + response = self.client.open( + '/operations/tapi-connectivity:delete-connectivity-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivityget_connection_details_post(self): + """Test case for operations_tapi_connectivityget_connection_details_post + + operates on tapi.connectivity.GetConnectionDetails + """ + body = OperationsTapiconnectivitygetconnectiondetailsBody() + response = self.client.open( + '/operations/tapi-connectivity:get-connection-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivityget_connection_end_point_details_post(self): + """Test case for operations_tapi_connectivityget_connection_end_point_details_post + + operates on tapi.connectivity.GetConnectionEndPointDetails + """ + body = OperationsTapiconnectivitygetconnectionendpointdetailsBody() + response = self.client.open( + '/operations/tapi-connectivity:get-connection-end-point-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivityget_connectivity_service_details_post(self): + """Test case for operations_tapi_connectivityget_connectivity_service_details_post + + operates on tapi.connectivity.GetConnectivityServiceDetails + """ + body = OperationsTapiconnectivitygetconnectivityservicedetailsBody() + response = self.client.open( + '/operations/tapi-connectivity:get-connectivity-service-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivityget_connectivity_service_list_post(self): + """Test case for operations_tapi_connectivityget_connectivity_service_list_post + + + """ + response = self.client.open( + '/operations/tapi-connectivity:get-connectivity-service-list/', + method='POST') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_connectivityupdate_connectivity_service_post(self): + """Test case for operations_tapi_connectivityupdate_connectivity_service_post + + operates on tapi.connectivity.UpdateConnectivityService + """ + body = OperationsTapiconnectivityupdateconnectivityserviceBody() + response = self.client.open( + '/operations/tapi-connectivity:update-connectivity-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/tapi/server/tapi_server/test/test_tapi_notification_controller.py b/hackfest/tapi/server/tapi_server/test/test_tapi_notification_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..d4270b546c408cf8a0b06bd506a7cab1901be18b --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/test_tapi_notification_controller.py @@ -0,0 +1,556 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from tapi_server.models.operations_tapinotificationcreatenotificationsubscriptionservice_body import OperationsTapinotificationcreatenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.operations_tapinotificationdeletenotificationsubscriptionservice_body import OperationsTapinotificationdeletenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.operations_tapinotificationgetnotificationlist_body import OperationsTapinotificationgetnotificationlistBody # noqa: E501 +from tapi_server.models.operations_tapinotificationgetnotificationsubscriptionservicedetails_body import OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody # noqa: E501 +from tapi_server.models.operations_tapinotificationupdatenotificationsubscriptionservice_body import OperationsTapinotificationupdatenotificationsubscriptionserviceBody # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_notification_alarm_info_wrapper import TapiNotificationAlarmInfoWrapper # noqa: E501 +from tapi_server.models.tapi_notification_create_notification_subscription_service import TapiNotificationCreateNotificationSubscriptionService # noqa: E501 +from tapi_server.models.tapi_notification_delete_notification_subscription_service import TapiNotificationDeleteNotificationSubscriptionService # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_list import TapiNotificationGetNotificationList # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_subscription_service_details import TapiNotificationGetNotificationSubscriptionServiceDetails # noqa: E501 +from tapi_server.models.tapi_notification_get_notification_subscription_service_list import TapiNotificationGetNotificationSubscriptionServiceList # noqa: E501 +from tapi_server.models.tapi_notification_get_supported_notification_types import TapiNotificationGetSupportedNotificationTypes # noqa: E501 +from tapi_server.models.tapi_notification_name_and_value_change_wrapper import TapiNotificationNameAndValueChangeWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_channel_wrapper import TapiNotificationNotificationChannelWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_context_wrapper import TapiNotificationNotificationContextWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_subscription_service_wrapper import TapiNotificationNotificationSubscriptionServiceWrapper # noqa: E501 +from tapi_server.models.tapi_notification_notification_wrapper import TapiNotificationNotificationWrapper # noqa: E501 +from tapi_server.models.tapi_notification_subscription_filter_wrapper import TapiNotificationSubscriptionFilterWrapper # noqa: E501 +from tapi_server.models.tapi_notification_tca_info_wrapper import TapiNotificationTcaInfoWrapper # noqa: E501 +from tapi_server.models.tapi_notification_update_notification_subscription_service import TapiNotificationUpdateNotificationSubscriptionService # noqa: E501 +from tapi_server.test import BaseTestCase + + +class TestTapiNotificationController(BaseTestCase): + """TapiNotificationController integration test stubs""" + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_delete(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_delete + + removes tapi.notification.NotificationContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_get + + returns tapi.notification.NotificationContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscription_post(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscription_post + + creates tapi.notification.NotificationSubscriptionService + """ + body = TapiNotificationNotificationSubscriptionServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_delete(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_delete + + removes tapi.notification.NotificationSubscriptionService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_get + + returns tapi.notification.NotificationSubscriptionService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_name_post(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_get + + returns tapi.notification.NotificationChannel + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notification_channel_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_additional_infovalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_additional_infovalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/additional-info={value-name}/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_alarm_info_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_alarm_info_get + + returns tapi.notification.AlarmInfo + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/alarm-info/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_changed_attributesvalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_changed_attributesvalue_name_get + + returns tapi.notification.NameAndValueChange + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/changed-attributes={value-name}/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_get + + returns tapi.notification.Notification + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/name={value-name}/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_target_object_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_target_object_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/target-object-name={value-name}/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_tca_info_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_notificationnotification_uuid_tca_info_get + + returns tapi.notification.TcaInfo + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/tca-info/'.format(uuid='uuid_example', notification_uuid='notification_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_put(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_put + + creates or updates tapi.notification.NotificationSubscriptionService + """ + body = TapiNotificationNotificationSubscriptionServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_delete(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_delete + + removes tapi.notification.SubscriptionFilter + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_get + + returns tapi.notification.SubscriptionFilter + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_name_post(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_post(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_post + + creates tapi.notification.SubscriptionFilter + """ + body = TapiNotificationSubscriptionFilterWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_put(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notif_subscriptionuuid_subscription_filter_put + + creates or updates tapi.notification.SubscriptionFilter + """ + body = TapiNotificationSubscriptionFilterWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_additional_infovalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_additional_infovalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/additional-info={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_alarm_info_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_alarm_info_get + + returns tapi.notification.AlarmInfo + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/alarm-info/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_changed_attributesvalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_changed_attributesvalue_name_get + + returns tapi.notification.NameAndValueChange + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/changed-attributes={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_get + + returns tapi.notification.Notification + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_target_object_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_target_object_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/target-object-name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_tca_info_get(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_notificationuuid_tca_info_get + + returns tapi.notification.TcaInfo + """ + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/tca-info/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_post(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_post + + creates tapi.notification.NotificationContext + """ + body = TapiNotificationNotificationContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_notificationnotification_context_put(self): + """Test case for data_tapi_commoncontext_tapi_notificationnotification_context_put + + creates or updates tapi.notification.NotificationContext + """ + body = TapiNotificationNotificationContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-notification:notification-context/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationcreate_notification_subscription_service_post(self): + """Test case for operations_tapi_notificationcreate_notification_subscription_service_post + + operates on tapi.notification.CreateNotificationSubscriptionService + """ + body = OperationsTapinotificationcreatenotificationsubscriptionserviceBody() + response = self.client.open( + '/operations/tapi-notification:create-notification-subscription-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationdelete_notification_subscription_service_post(self): + """Test case for operations_tapi_notificationdelete_notification_subscription_service_post + + operates on tapi.notification.DeleteNotificationSubscriptionService + """ + body = OperationsTapinotificationdeletenotificationsubscriptionserviceBody() + response = self.client.open( + '/operations/tapi-notification:delete-notification-subscription-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationget_notification_list_post(self): + """Test case for operations_tapi_notificationget_notification_list_post + + operates on tapi.notification.GetNotificationList + """ + body = OperationsTapinotificationgetnotificationlistBody() + response = self.client.open( + '/operations/tapi-notification:get-notification-list/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationget_notification_subscription_service_details_post(self): + """Test case for operations_tapi_notificationget_notification_subscription_service_details_post + + operates on tapi.notification.GetNotificationSubscriptionServiceDetails + """ + body = OperationsTapinotificationgetnotificationsubscriptionservicedetailsBody() + response = self.client.open( + '/operations/tapi-notification:get-notification-subscription-service-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationget_notification_subscription_service_list_post(self): + """Test case for operations_tapi_notificationget_notification_subscription_service_list_post + + + """ + response = self.client.open( + '/operations/tapi-notification:get-notification-subscription-service-list/', + method='POST') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationget_supported_notification_types_post(self): + """Test case for operations_tapi_notificationget_supported_notification_types_post + + + """ + response = self.client.open( + '/operations/tapi-notification:get-supported-notification-types/', + method='POST') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_notificationupdate_notification_subscription_service_post(self): + """Test case for operations_tapi_notificationupdate_notification_subscription_service_post + + operates on tapi.notification.UpdateNotificationSubscriptionService + """ + body = OperationsTapinotificationupdatenotificationsubscriptionserviceBody() + response = self.client.open( + '/operations/tapi-notification:update-notification-subscription-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/tapi/server/tapi_server/test/test_tapi_path_computation_controller.py b/hackfest/tapi/server/tapi_server/test/test_tapi_path_computation_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..1c833fb966932dc77eced3563497c9b46373670c --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/test_tapi_path_computation_controller.py @@ -0,0 +1,1455 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from tapi_server.models.operations_tapipathcomputationcomputep2ppath_body import OperationsTapipathcomputationcomputep2ppathBody # noqa: E501 +from tapi_server.models.operations_tapipathcomputationdeletep2ppath_body import OperationsTapipathcomputationdeletep2ppathBody # noqa: E501 +from tapi_server.models.operations_tapipathcomputationoptimizep2ppath_body import OperationsTapipathcomputationoptimizep2ppathBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_compute_p2_p_path import TapiPathComputationComputeP2PPath # noqa: E501 +from tapi_server.models.tapi_path_computation_delete_p2_p_path import TapiPathComputationDeleteP2PPath # noqa: E501 +from tapi_server.models.tapi_path_computation_optimize_p2_ppath import TapiPathComputationOptimizeP2Ppath # noqa: E501 +from tapi_server.models.tapi_path_computation_path_computation_context_wrapper import TapiPathComputationPathComputationContextWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_computation_service_wrapper import TapiPathComputationPathComputationServiceWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_objective_function_wrapper import TapiPathComputationPathObjectiveFunctionWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_optimization_constraint_wrapper import TapiPathComputationPathOptimizationConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_ref_wrapper import TapiPathComputationPathRefWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_service_end_point_wrapper import TapiPathComputationPathServiceEndPointWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_path_wrapper import TapiPathComputationPathWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_routing_constraint_wrapper import TapiPathComputationRoutingConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_topology_constraint_wrapper import TapiPathComputationTopologyConstraintWrapper # noqa: E501 +from tapi_server.models.tapi_path_computation_value_or_priority_wrapper import TapiPathComputationValueOrPriorityWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_ref_wrapper import TapiTopologyLinkRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server.test import BaseTestCase + + +class TestTapiPathComputationController(BaseTestCase): + """TapiPathComputationController integration test stubs""" + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_delete + + removes tapi.path.computation.PathComputationContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_get + + returns tapi.path.computation.PathComputationContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_service_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_service_post + + creates tapi.path.computation.PathComputationService + """ + body = TapiPathComputationPathComputationServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_delete + + removes tapi.path.computation.PathComputationService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_point_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_point_post + + creates tapi.path.computation.PathServiceEndPoint + """ + body = TapiPathComputationPathServiceEndPointWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_committed_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_delete + + removes tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_burst_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_peak_information_rate_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_post + + creates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_bandwidth_profile_put + + creates or updates tapi.common.BandwidthProfile + """ + body = TapiCommonBandwidthProfileWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_delete + + removes tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_post + + creates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_put + + creates or updates tapi.common.Capacity + """ + body = TapiCommonCapacityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_delete + + removes tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_post + + creates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_capacity_total_size_put + + creates or updates tapi.common.CapacityValue + """ + body = TapiCommonCapacityValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_delete + + removes tapi.path.computation.PathServiceEndPoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_get + + returns tapi.path.computation.PathServiceEndPoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_name_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name={value-name}/'.format(uuid='uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_put + + creates or updates tapi.path.computation.PathServiceEndPoint + """ + body = TapiPathComputationPathServiceEndPointWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_delete + + removes tapi.common.ServiceInterfacePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_get + + returns tapi.common.ServiceInterfacePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_post + + creates tapi.common.ServiceInterfacePointRef + """ + body = TapiCommonServiceInterfacePointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_end_pointlocal_id_service_interface_point_put + + creates or updates tapi.common.ServiceInterfacePointRef + """ + body = TapiCommonServiceInterfacePointRefWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/'.format(uuid='uuid_example', local_id='local_id_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_get + + returns tapi.path.computation.PathComputationService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_name_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_delete + + removes tapi.path.computation.PathObjectiveFunction + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_get + + returns tapi.path.computation.PathObjectiveFunction + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_name_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_post + + creates tapi.path.computation.PathObjectiveFunction + """ + body = TapiPathComputationPathObjectiveFunctionWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_objective_function_put + + creates or updates tapi.path.computation.PathObjectiveFunction + """ + body = TapiPathComputationPathObjectiveFunctionWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_delete + + removes tapi.path.computation.PathOptimizationConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_get + + returns tapi.path.computation.PathOptimizationConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_name_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_name_post + + creates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_delete + + removes tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_namevalue_name_put + + creates or updates tapi.common.NameAndValue + """ + body = TapiCommonNameAndValueWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_post + + creates tapi.path.computation.PathOptimizationConstraint + """ + body = TapiPathComputationPathOptimizationConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_optimization_constraint_put + + creates or updates tapi.path.computation.PathOptimizationConstraint + """ + body = TapiPathComputationPathOptimizationConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_pathpath_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_pathpath_uuid_get + + returns tapi.path.computation.PathRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/path={path-uuid}/'.format(uuid='uuid_example', path_uuid='path_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_put + + creates or updates tapi.path.computation.PathComputationService + """ + body = TapiPathComputationPathComputationServiceWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristic_post + + creates tapi.topology.CostCharacteristic + """ + body = TapiTopologyCostCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_delete + + removes tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_cost_characteristiccost_name_put + + creates or updates tapi.topology.CostCharacteristic + """ + body = TapiTopologyCostCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_delete + + removes tapi.path.computation.RoutingConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_get + + returns tapi.path.computation.RoutingConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristic_post + + creates tapi.topology.LatencyCharacteristic + """ + body = TapiTopologyLatencyCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_delete + + removes tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_latency_characteristictraffic_property_name_put + + creates or updates tapi.topology.LatencyCharacteristic + """ + body = TapiTopologyLatencyCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_cost_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_delay_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_delete + + removes tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_post + + creates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_max_allowed_hops_put + + creates or updates tapi.path.computation.ValueOrPriority + """ + body = TapiPathComputationValueOrPriorityWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_post + + creates tapi.path.computation.RoutingConstraint + """ + body = TapiPathComputationRoutingConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_put + + creates or updates tapi.path.computation.RoutingConstraint + """ + body = TapiPathComputationRoutingConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristic_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristic_post + + creates tapi.topology.RiskCharacteristic + """ + body = TapiTopologyRiskCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_delete + + removes tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_put + + creates or updates tapi.topology.RiskCharacteristic + """ + body = TapiTopologyRiskCharacteristicWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_delete(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_delete + + removes tapi.path.computation.TopologyConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/'.format(uuid='uuid_example'), + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_get + + returns tapi.path.computation.TopologyConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_post + + creates tapi.path.computation.TopologyConstraint + """ + body = TapiPathComputationTopologyConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/'.format(uuid='uuid_example'), + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_path_comp_serviceuuid_topology_constraint_put + + creates or updates tapi.path.computation.TopologyConstraint + """ + body = TapiPathComputationTopologyConstraintWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/'.format(uuid='uuid_example'), + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_get + + returns tapi.path.computation.Path + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_linktopology_uuidlink_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_linktopology_uuidlink_uuid_get + + returns tapi.topology.LinkRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/link={topology-uuid},{link-uuid}/'.format(uuid='uuid_example', topology_uuid='topology_uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/cost-characteristic={cost-name}/'.format(uuid='uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_get + + returns tapi.path.computation.RoutingConstraint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_cost_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_cost_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-cost/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_delay_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_delay_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-delay/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_hops_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_max_allowed_hops_get + + returns tapi.path.computation.ValueOrPriority + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-hops/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_pathuuid_routing_constraint_risk_diversity_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_post(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_post + + creates tapi.path.computation.PathComputationContext + """ + body = TapiPathComputationPathComputationContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_path_computationpath_computation_context_put(self): + """Test case for data_tapi_commoncontext_tapi_path_computationpath_computation_context_put + + creates or updates tapi.path.computation.PathComputationContext + """ + body = TapiPathComputationPathComputationContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-path-computation:path-computation-context/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_path_computationcompute_p2_p_path_post(self): + """Test case for operations_tapi_path_computationcompute_p2_p_path_post + + operates on tapi.path.computation.ComputeP2PPath + """ + body = OperationsTapipathcomputationcomputep2ppathBody() + response = self.client.open( + '/operations/tapi-path-computation:compute-p-2-p-path/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_path_computationdelete_p2_p_path_post(self): + """Test case for operations_tapi_path_computationdelete_p2_p_path_post + + operates on tapi.path.computation.DeleteP2PPath + """ + body = OperationsTapipathcomputationdeletep2ppathBody() + response = self.client.open( + '/operations/tapi-path-computation:delete-p-2-p-path/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_path_computationoptimize_p2_ppath_post(self): + """Test case for operations_tapi_path_computationoptimize_p2_ppath_post + + operates on tapi.path.computation.OptimizeP2Ppath + """ + body = OperationsTapipathcomputationoptimizep2ppathBody() + response = self.client.open( + '/operations/tapi-path-computation:optimize-p-2-ppath/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/tapi/server/tapi_server/test/test_tapi_topology_controller.py b/hackfest/tapi/server/tapi_server/test/test_tapi_topology_controller.py new file mode 100644 index 0000000000000000000000000000000000000000..2f528d43d7ed5f21f6fe72f8c81628d98cd0db38 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/test/test_tapi_topology_controller.py @@ -0,0 +1,1444 @@ +# coding: utf-8 + +from __future__ import absolute_import + +from flask import json +from six import BytesIO + +from tapi_server.models.operations_tapitopologygetlinkdetails_body import OperationsTapitopologygetlinkdetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygetnodedetails_body import OperationsTapitopologygetnodedetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygetnodeedgepointdetails_body import OperationsTapitopologygetnodeedgepointdetailsBody # noqa: E501 +from tapi_server.models.operations_tapitopologygettopologydetails_body import OperationsTapitopologygettopologydetailsBody # noqa: E501 +from tapi_server.models.tapi_common_bandwidth_profile_wrapper import TapiCommonBandwidthProfileWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_value_wrapper import TapiCommonCapacityValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_capacity_wrapper import TapiCommonCapacityWrapper # noqa: E501 +from tapi_server.models.tapi_common_name_and_value_wrapper import TapiCommonNameAndValueWrapper # noqa: E501 +from tapi_server.models.tapi_common_service_interface_point_ref_wrapper import TapiCommonServiceInterfacePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_connection_spec_reference_wrapper import TapiTopologyConnectionSpecReferenceWrapper # noqa: E501 +from tapi_server.models.tapi_topology_cost_characteristic_wrapper import TapiTopologyCostCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_get_link_details import TapiTopologyGetLinkDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_node_details import TapiTopologyGetNodeDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_node_edge_point_details import TapiTopologyGetNodeEdgePointDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_topology_details import TapiTopologyGetTopologyDetails # noqa: E501 +from tapi_server.models.tapi_topology_get_topology_list import TapiTopologyGetTopologyList # noqa: E501 +from tapi_server.models.tapi_topology_inter_rule_group_wrapper import TapiTopologyInterRuleGroupWrapper # noqa: E501 +from tapi_server.models.tapi_topology_latency_characteristic_wrapper import TapiTopologyLatencyCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_link_wrapper import TapiTopologyLinkWrapper # noqa: E501 +from tapi_server.models.tapi_topology_network_topology_service_wrapper import TapiTopologyNetworkTopologyServiceWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_edge_point_ref_wrapper import TapiTopologyNodeEdgePointRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_owned_node_edge_point_wrapper import TapiTopologyNodeOwnedNodeEdgePointWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_rule_group_ref_wrapper import TapiTopologyNodeRuleGroupRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_node_rule_group_wrapper import TapiTopologyNodeRuleGroupWrapper # noqa: E501 +from tapi_server.models.tapi_topology_port_role_rule_wrapper import TapiTopologyPortRoleRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_resilience_type_wrapper import TapiTopologyResilienceTypeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_risk_characteristic_wrapper import TapiTopologyRiskCharacteristicWrapper # noqa: E501 +from tapi_server.models.tapi_topology_rule_wrapper import TapiTopologyRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_signal_property_rule_wrapper import TapiTopologySignalPropertyRuleWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_context_wrapper import TapiTopologyTopologyContextWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_node_wrapper import TapiTopologyTopologyNodeWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_ref_wrapper import TapiTopologyTopologyRefWrapper # noqa: E501 +from tapi_server.models.tapi_topology_topology_wrapper import TapiTopologyTopologyWrapper # noqa: E501 +from tapi_server.models.tapi_topology_validation_mechanism_wrapper import TapiTopologyValidationMechanismWrapper # noqa: E501 +from tapi_server.test import BaseTestCase + + +class TestTapiTopologyController(BaseTestCase): + """TapiTopologyController integration test stubs""" + + def test_data_tapi_commoncontext_tapi_topologytopology_context_delete(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_delete + + removes tapi.topology.context.TopologyContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/', + method='DELETE') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_get + + returns tapi.topology.context.TopologyContext + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_get + + returns tapi.topology.NetworkTopologyService + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/', + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/name={value-name}/'.format(value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_topologytopology_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_nw_topology_service_topologytopology_uuid_get + + returns tapi.topology.TopologyRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/topology={topology-uuid}/'.format(topology_uuid='topology_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_post(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_post + + creates tapi.topology.context.TopologyContext + """ + body = TapiTopologyTopologyContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_put(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_put + + creates or updates tapi.topology.context.TopologyContext + """ + body = TapiTopologyTopologyContextWrapper() + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/', + method='PUT', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_get + + returns tapi.topology.topologycontext.Topology + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/'.format(uuid='uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/total-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_get + + returns tapi.topology.Link + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/name={value-name}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_node_edge_pointtopology_uuidnode_uuidnode_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_node_edge_pointtopology_uuidnode_uuidnode_edge_point_uuid_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/node-edge-point={topology-uuid},{node-uuid},{node-edge-point-uuid}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', topology_uuid='topology_uuid_example', node_uuid='node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_resilience_type_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_resilience_type_get + + returns tapi.topology.ResilienceType + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/resilience-type/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_risk_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_risk_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/risk-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example', link_uuid='link_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_validation_mechanismvalidation_mechanism_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_linklink_uuid_validation_mechanismvalidation_mechanism_get + + returns tapi.topology.ValidationMechanism + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/validation-mechanism={validation-mechanism}/'.format(uuid='uuid_example', link_uuid='link_uuid_example', validation_mechanism='validation_mechanism_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/name={value-name}/'.format(uuid='uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', topology_uuid='topology_uuid_example', aggregated_node_edge_point_node_uuid='aggregated_node_edge_point_node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_encap_topology_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_encap_topology_get + + returns tapi.topology.TopologyRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/encap-topology/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_get + + returns tapi.topology.topology.Node + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_get + + returns tapi.topology.NodeRuleGroup + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_associated_node_rule_grouptopology_uuidassociated_node_rule_group_node_uuidassociated_node_rule_group_node_rule_group_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_associated_node_rule_grouptopology_uuidassociated_node_rule_group_node_uuidassociated_node_rule_group_node_rule_group_uuid_get + + returns tapi.topology.NodeRuleGroupRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/associated-node-rule-group={topology-uuid},{associated-node-rule-group-node-uuid},{associated-node-rule-group-node-rule-group-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', topology_uuid='topology_uuid_example', associated_node_rule_group_node_uuid='associated_node_rule_group_node_uuid_example', associated_node_rule_group_node_rule_group_uuid='associated_node_rule_group_node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_cost_characteristiccost_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_cost_characteristiccost_name_get + + returns tapi.topology.CostCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/cost-characteristic={cost-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', cost_name='cost_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_get + + returns tapi.topology.InterRuleGroup + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_risk_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_risk_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_cep_port_role_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_cep_port_role_get + + returns tapi.topology.PortRoleRule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/cep-port-role/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_connection_spec_reference_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_connection_spec_reference_get + + returns tapi.topology.ConnectionSpecReference + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/connection-spec-reference/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_get + + returns tapi.topology.Rule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_signal_property_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_rulelocal_id_signal_property_get + + returns tapi.topology.SignalPropertyRule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/signal-property/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_inter_rule_groupinter_rule_group_uuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', inter_rule_group_uuid='inter_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_latency_characteristictraffic_property_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_latency_characteristictraffic_property_name_get + + returns tapi.topology.LatencyCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/latency-characteristic={traffic-property-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', traffic_property_name='traffic_property_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_edge_pointtopology_uuidnode_edge_point_node_uuidnode_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_edge_pointtopology_uuidnode_edge_point_node_uuidnode_edge_point_uuid_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-edge-point={topology-uuid},{node-edge-point-node-uuid},{node-edge-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', topology_uuid='topology_uuid_example', node_edge_point_node_uuid='node_edge_point_node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_rule_grouptopology_uuidnode_rule_group_node_uuidnode_rule_group_node_rule_group_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_node_rule_grouptopology_uuidnode_rule_group_node_uuidnode_rule_group_node_rule_group_uuid_get + + returns tapi.topology.NodeRuleGroupRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-rule-group={topology-uuid},{node-rule-group-node-uuid},{node-rule-group-node-rule-group-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', topology_uuid='topology_uuid_example', node_rule_group_node_uuid='node_rule_group_node_uuid_example', node_rule_group_node_rule_group_uuid='node_rule_group_node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_risk_characteristicrisk_characteristic_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_risk_characteristicrisk_characteristic_name_get + + returns tapi.topology.RiskCharacteristic + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', risk_characteristic_name='risk_characteristic_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_cep_port_role_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_cep_port_role_get + + returns tapi.topology.PortRoleRule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/cep-port-role/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_connection_spec_reference_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_connection_spec_reference_get + + returns tapi.topology.ConnectionSpecReference + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/connection-spec-reference/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_get + + returns tapi.topology.Rule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', local_id='local_id_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_signal_property_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_rulelocal_id_signal_property_get + + returns tapi.topology.SignalPropertyRule + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/signal-property/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example', local_id='local_id_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_node_rule_groupnode_rule_group_uuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', node_rule_group_uuid='node_rule_group_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_aggregated_node_edge_pointtopology_uuidaggregated_node_edge_point_node_uuidnode_edge_point_uuid_get + + returns tapi.topology.NodeEdgePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', topology_uuid='topology_uuid_example', aggregated_node_edge_point_node_uuid='aggregated_node_edge_point_node_uuid_example', node_edge_point_uuid='node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_available_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_get + + returns tapi.topology.node.OwnedNodeEdgePoint + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_mapped_service_interface_pointservice_interface_point_uuid_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_mapped_service_interface_pointservice_interface_point_uuid_get + + returns tapi.common.ServiceInterfacePointRef + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/mapped-service-interface-point={service-interface-point-uuid}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', service_interface_point_uuid='service_interface_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_namevalue_name_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_namevalue_name_get + + returns tapi.common.NameAndValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/name={value-name}/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example', value_name='value_name_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_owned_node_edge_pointowned_node_edge_point_uuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example', owned_node_edge_point_uuid='owned_node_edge_point_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_committed_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_get + + returns tapi.common.BandwidthProfile + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_burst_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_bandwidth_profile_peak_information_rate_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_get + + returns tapi.common.Capacity + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_total_size_get(self): + """Test case for data_tapi_commoncontext_tapi_topologytopology_context_topologyuuid_nodenode_uuid_total_potential_capacity_total_size_get + + returns tapi.common.CapacityValue + """ + response = self.client.open( + '/data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/total-size/'.format(uuid='uuid_example', node_uuid='node_uuid_example'), + method='GET') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_topologyget_link_details_post(self): + """Test case for operations_tapi_topologyget_link_details_post + + operates on tapi.topology.GetLinkDetails + """ + body = OperationsTapitopologygetlinkdetailsBody() + response = self.client.open( + '/operations/tapi-topology:get-link-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_topologyget_node_details_post(self): + """Test case for operations_tapi_topologyget_node_details_post + + operates on tapi.topology.GetNodeDetails + """ + body = OperationsTapitopologygetnodedetailsBody() + response = self.client.open( + '/operations/tapi-topology:get-node-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_topologyget_node_edge_point_details_post(self): + """Test case for operations_tapi_topologyget_node_edge_point_details_post + + operates on tapi.topology.GetNodeEdgePointDetails + """ + body = OperationsTapitopologygetnodeedgepointdetailsBody() + response = self.client.open( + '/operations/tapi-topology:get-node-edge-point-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_topologyget_topology_details_post(self): + """Test case for operations_tapi_topologyget_topology_details_post + + operates on tapi.topology.GetTopologyDetails + """ + body = OperationsTapitopologygettopologydetailsBody() + response = self.client.open( + '/operations/tapi-topology:get-topology-details/', + method='POST', + data=json.dumps(body), + content_type='application/yang-data+json') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + def test_operations_tapi_topologyget_topology_list_post(self): + """Test case for operations_tapi_topologyget_topology_list_post + + + """ + response = self.client.open( + '/operations/tapi-topology:get-topology-list/', + method='POST') + self.assert200(response, + 'Response body is : ' + response.data.decode('utf-8')) + + +if __name__ == '__main__': + import unittest + unittest.main() diff --git a/hackfest/tapi/server/tapi_server/type_util.py b/hackfest/tapi/server/tapi_server/type_util.py new file mode 100644 index 0000000000000000000000000000000000000000..0563f81fd5345282a33705038dfa77fdcaa15872 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/type_util.py @@ -0,0 +1,32 @@ +# coding: utf-8 + +import sys + +if sys.version_info < (3, 7): + import typing + + def is_generic(klass): + """ Determine whether klass is a generic class """ + return type(klass) == typing.GenericMeta + + def is_dict(klass): + """ Determine whether klass is a Dict """ + return klass.__extra__ == dict + + def is_list(klass): + """ Determine whether klass is a List """ + return klass.__extra__ == list + +else: + + def is_generic(klass): + """ Determine whether klass is a generic class """ + return hasattr(klass, '__origin__') + + def is_dict(klass): + """ Determine whether klass is a Dict """ + return klass.__origin__ == dict + + def is_list(klass): + """ Determine whether klass is a List """ + return klass.__origin__ == list diff --git a/hackfest/tapi/server/tapi_server/util.py b/hackfest/tapi/server/tapi_server/util.py new file mode 100644 index 0000000000000000000000000000000000000000..f627e2a294aef5a1069f9825a57a03c4e5df5db6 --- /dev/null +++ b/hackfest/tapi/server/tapi_server/util.py @@ -0,0 +1,142 @@ +import datetime + +import six +import typing +from tapi_server import type_util + + +def _deserialize(data, klass): + """Deserializes dict, list, str into an object. + + :param data: dict, list or str. + :param klass: class literal, or string of class name. + + :return: object. + """ + if data is None: + return None + + if klass in six.integer_types or klass in (float, str, bool, bytearray): + return _deserialize_primitive(data, klass) + elif klass == object: + return _deserialize_object(data) + elif klass == datetime.date: + return deserialize_date(data) + elif klass == datetime.datetime: + return deserialize_datetime(data) + elif type_util.is_generic(klass): + if type_util.is_list(klass): + return _deserialize_list(data, klass.__args__[0]) + if type_util.is_dict(klass): + return _deserialize_dict(data, klass.__args__[1]) + else: + return deserialize_model(data, klass) + + +def _deserialize_primitive(data, klass): + """Deserializes to primitive type. + + :param data: data to deserialize. + :param klass: class literal. + + :return: int, long, float, str, bool. + :rtype: int | long | float | str | bool + """ + try: + value = klass(data) + except UnicodeEncodeError: + value = six.u(data) + except TypeError: + value = data + return value + + +def _deserialize_object(value): + """Return an original value. + + :return: object. + """ + return value + + +def deserialize_date(string): + """Deserializes string to date. + + :param string: str. + :type string: str + :return: date. + :rtype: date + """ + try: + from dateutil.parser import parse + return parse(string).date() + except ImportError: + return string + + +def deserialize_datetime(string): + """Deserializes string to datetime. + + The string should be in iso8601 datetime format. + + :param string: str. + :type string: str + :return: datetime. + :rtype: datetime + """ + try: + from dateutil.parser import parse + return parse(string) + except ImportError: + return string + + +def deserialize_model(data, klass): + """Deserializes list or dict to model. + + :param data: dict, list. + :type data: dict | list + :param klass: class literal. + :return: model object. + """ + instance = klass() + + if not instance.swagger_types: + return data + + for attr, attr_type in six.iteritems(instance.swagger_types): + if data is not None \ + and instance.attribute_map[attr] in data \ + and isinstance(data, (list, dict)): + value = data[instance.attribute_map[attr]] + setattr(instance, attr, _deserialize(value, attr_type)) + + return instance + + +def _deserialize_list(data, boxed_type): + """Deserializes a list and its elements. + + :param data: list to deserialize. + :type data: list + :param boxed_type: class literal. + + :return: deserialized list. + :rtype: list + """ + return [_deserialize(sub_data, boxed_type) + for sub_data in data] + + +def _deserialize_dict(data, boxed_type): + """Deserializes a dict and its elements. + + :param data: dict to deserialize. + :type data: dict + :param boxed_type: class literal. + + :return: deserialized dict. + :rtype: dict + """ + return {k: _deserialize(v, boxed_type) + for k, v in six.iteritems(data)} diff --git a/hackfest/tapi/server/test-requirements.txt b/hackfest/tapi/server/test-requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..2640639a25a3bffe0f449788303300a364c55cb7 --- /dev/null +++ b/hackfest/tapi/server/test-requirements.txt @@ -0,0 +1,7 @@ +flask_testing==0.8.0 +coverage>=4.0.3 +nose>=1.3.7 +pluggy>=0.3.1 +py>=1.4.31 +randomize>=0.13 +tox==3.20.1 diff --git a/hackfest/tapi/server/tox.ini b/hackfest/tapi/server/tox.ini new file mode 100644 index 0000000000000000000000000000000000000000..2751b218c1d2385c081c114c9094fc5e388126dc --- /dev/null +++ b/hackfest/tapi/server/tox.ini @@ -0,0 +1,10 @@ +[tox] +envlist = py38 + +[testenv] +deps=-r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt + +commands= + nosetests \ + [] \ No newline at end of file diff --git a/hackfest/tapi/swagger-codegen-cli-3.0.35.jar b/hackfest/tapi/swagger-codegen-cli-3.0.35.jar new file mode 100644 index 0000000000000000000000000000000000000000..88f9085ea972daed2099d62c89d4a96d0e4bd730 Binary files /dev/null and b/hackfest/tapi/swagger-codegen-cli-3.0.35.jar differ diff --git a/hackfest/tapi/tapi-connectivity.yaml b/hackfest/tapi/tapi-connectivity.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6cc5d39037ef0fca8ba6f6029344eade09ec7364 --- /dev/null +++ b/hackfest/tapi/tapi-connectivity.yaml @@ -0,0 +1,15196 @@ +--- +swagger: "2.0" +info: + description: "\r\n This module contains TAPI Notification Model definitions.\r\ + \n Source: TapiNotification.uml\r\n - The TAPI YANG models included\ + \ in this TAPI release are a *normative* part of the TAPI SDK.\r\n - The\ + \ YANG specifications have been generated from the corresponding UML model using\ + \ the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section\ + \ 11 of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0,\r\n This module contains TAPI Connectivity Model\ + \ definitions.\r\n Source: TapiConnectivity.uml\r\n - The TAPI YANG\ + \ models included in this TAPI release are a *normative* part of the TAPI SDK.\r\ + \n - The YANG specifications have been generated from the corresponding\ + \ UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section 11\ + \ of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Topology Model\ + \ definitions.\r\n Source: TapiTopology.uml\r\n - The TAPI YANG\ + \ models included in this TAPI release are a *normative* part of the TAPI SDK.\r\ + \n - The YANG specifications have been generated from the corresponding\ + \ UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \r\n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\n - Status of YANG model artifacts can be determined by referring\ + \ to the corresponding UML artifacts.\r\n As described in the UML models,\ + \ some artifacts are considered *experimental*, and thus the corresponding YANG\ + \ artifacts.\r\n - The ONF TAPI release process does not guarantee backward\ + \ compatibility of YANG models across major versions of TAPI releases.\r\n \ + \ The YANG model backward compatibility criteria are outlined in section\ + \ 11 of .\r\n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Common Model definitions.\r\ + \n Source: TapiCommon.uml\r\n - The TAPI YANG models included in\ + \ this TAPI release are a *normative* part of the TAPI SDK.\r\n - The YANG\ + \ specifications have been generated from the corresponding UML model using the\ + \ [ONF EAGLE UML2YANG mapping tool]\r\n \r\ + \n and further edited manually to comply with the [ONF IISOMI UML2YANG\ + \ mapping guidelines]\r\n \r\ + \n - Status of YANG model artifacts can be determined by referring to the\ + \ corresponding UML artifacts.\r\n As described in the UML models, some\ + \ artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r\ + \n - The ONF TAPI release process does not guarantee backward compatibility\ + \ of YANG models across major versions of TAPI releases.\r\n The YANG model\ + \ backward compatibility criteria are outlined in section 11 of .\r\ + \n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0.,\r\n This module contains TAPI Path Computation\ + \ Model definitions.\r\n Source: TapiPathComputation.uml\r\n - The\ + \ TAPI YANG models included in this TAPI release are a *normative* part of the\ + \ TAPI SDK.\r\n - The YANG specifications have been generated from the\ + \ corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r\n \ + \ \r\n and\ + \ further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r\ + \n \r\ + \n - Status of YANG model artifacts can be determined by referring to the\ + \ corresponding UML artifacts.\r\n As described in the UML models, some\ + \ artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r\ + \n - The ONF TAPI release process does not guarantee backward compatibility\ + \ of YANG models across major versions of TAPI releases.\r\n The YANG model\ + \ backward compatibility criteria are outlined in section 11 of .\r\ + \n YANG models included in this release may not be backward compatible\ + \ with previous TAPI releases.\r\n Copyright (c) 2018 Open Networking Foundation\ + \ (ONF). All rights reserved.\r\n License: This module is distributed under\ + \ the Apache License 2.0." + version: "2.1.3" + title: "tapi-notification,tapi-connectivity,tapi-topology,tapi-common,tapi-path-computation\ + \ API" +host: "localhost:1234" +consumes: +- "application/yang-data+json" +produces: +- "application/yang-data+json" +paths: + /data/tapi-common:context/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.Context" + description: "none" + parameters: [] + responses: + 200: + description: "tapi.common.Context" + schema: + $ref: "#/definitions/tapi.common.ContextWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-common" + summary: "creates tapi.common.Context" + description: "none" + parameters: + - in: "body" + name: "tapi.common.Context.body-param" + description: "tapi.common.Context to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.ContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-common" + summary: "creates or updates tapi.common.Context" + description: "none" + parameters: + - in: "body" + name: "tapi.common.Context.body-param" + description: "tapi.common.Context to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.ContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-common" + summary: "removes tapi.common.Context" + description: "none" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/name/: + post: + tags: + - "tapi-common" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/name={value-name}/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-common" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-common" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/service-interface-point/: + post: + tags: + - "tapi-common" + summary: "creates tapi.common.ServiceInterfacePoint" + description: "none" + parameters: + - in: "body" + name: "tapi.common.ServiceInterfacePoint.body-param" + description: "tapi.common.ServiceInterfacePoint to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/service-interface-point={uuid}/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.ServiceInterfacePoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.ServiceInterfacePoint" + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-common" + summary: "creates or updates tapi.common.ServiceInterfacePoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.ServiceInterfacePoint.body-param" + description: "tapi.common.ServiceInterfacePoint to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-common" + summary: "removes tapi.common.ServiceInterfacePoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-burst-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/committed-information-rate/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-burst-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/bandwidth-profile/peak-information-rate/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/available-capacity/total-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/name/: + post: + tags: + - "tapi-common" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/service-interface-point={uuid}/name={value-name}/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-common" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-common" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/service-interface-point={uuid}/total-potential-capacity/total-size/: + get: + tags: + - "tapi-common" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityContext" + description: "Augments the base TAPI Context with ConnectivityService information" + parameters: [] + responses: + 200: + description: "tapi.connectivity.ConnectivityContext" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityContextWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityContext" + description: "Augments the base TAPI Context with ConnectivityService information" + parameters: + - in: "body" + name: "tapi.connectivity.ConnectivityContext.body-param" + description: "tapi.connectivity.ConnectivityContext to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityContext" + description: "Augments the base TAPI Context with ConnectivityService information" + parameters: + - in: "body" + name: "tapi.connectivity.ConnectivityContext.body-param" + description: "tapi.connectivity.ConnectivityContext to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityContext" + description: "Augments the base TAPI Context with ConnectivityService information" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.Connection" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.Connection" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/connection-spec-reference/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionSpecReference" + description: "Provides the reference to the spec that defines the connection\ + \ type and cepRoles." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionSpecReference" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionSpecReferenceWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/lower-connection={connection-uuid}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionRef" + description: "An Connection object supports a recursive aggregation relationship\ + \ such that the internal construction of an Connection can be exposed as multiple\ + \ lower level Connection objects (partitioning).\r\n Aggregation\ + \ is used as for the Node/Topology to allow changes in hierarchy. \r\n \ + \ Connection aggregation reflects Node/Topology aggregation.\ + \ \r\n The FC represents a Cross-Connection in an NE. The Cross-Connection\ + \ in an NE is not necessarily the lowest level of FC partitioning." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "connection-uuid" + in: "path" + description: "Id of lower-connection" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/name={value-name}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.Route" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of route" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.Route" + schema: + $ref: "#/definitions/tapi.connectivity.RouteWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of route" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/name={value-name}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of route" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ResilienceRoute" + description: "Provides optional resilience and state attributes to the Route." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of route" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ResilienceRoute" + schema: + $ref: "#/definitions/tapi.connectivity.ResilienceRouteWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/route={local-id}/resilience-route-pac/name={value-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of route" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/supported-client-link={topology-uuid},{link-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.LinkRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of supported-client-link" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of supported-client-link" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LinkRef" + schema: + $ref: "#/definitions/tapi.topology.LinkRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.SwitchControl" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.SwitchControl" + schema: + $ref: "#/definitions/tapi.connectivity.SwitchControlWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/name={value-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/resilience-type/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ResilienceType" + schema: + $ref: "#/definitions/tapi.topology.ResilienceTypeWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/sub-switch-control={connection-uuid},{sub-switch-control-switch-control-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.SwitchControlRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "connection-uuid" + in: "path" + description: "Id of sub-switch-control" + required: true + type: "string" + - name: "sub-switch-control-switch-control-uuid" + in: "path" + description: "Id of sub-switch-control" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.SwitchControlRef" + schema: + $ref: "#/definitions/tapi.connectivity.SwitchControlRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.Switch" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of switch" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.Switch" + schema: + $ref: "#/definitions/tapi.connectivity.SwitchWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/name={value-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of switch" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of switch" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of selected-connection-end-point" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of selected-connection-end-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of selected-connection-end-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of selected-connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connection={uuid}/switch-control={switch-control-uuid}/switch={local-id}/selected-route={connection-uuid},{route-local-id}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.RouteRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + - name: "switch-control-uuid" + in: "path" + description: "Id of switch-control" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of switch" + required: true + type: "string" + - name: "connection-uuid" + in: "path" + description: "Id of selected-route" + required: true + type: "string" + - name: "route-local-id" + in: "path" + description: "Id of selected-route" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.RouteRef" + schema: + $ref: "#/definitions/tapi.connectivity.RouteRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityService" + description: "none" + parameters: + - in: "body" + name: "tapi.connectivity.ConnectivityService.body-param" + description: "tapi.connectivity.ConnectivityService to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityService" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityService.body-param" + description: "tapi.connectivity.ConnectivityService to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/connection={connection-uuid}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "connection-uuid" + in: "path" + description: "Id of connection" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/coroute-inclusion/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceRef.body-param" + description: "tapi.connectivity.ConnectivityServiceRef to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceRef.body-param" + description: "tapi.connectivity.ConnectivityServiceRef to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.CostCharacteristic.body-param" + description: "tapi.topology.CostCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/cost-characteristic={cost-name}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.CostCharacteristic.body-param" + description: "tapi.topology.CostCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceRef.body-param" + description: "tapi.connectivity.ConnectivityServiceRef to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/diversity-exclusion={connectivity-service-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "connectivity-service-uuid" + in: "path" + description: "Id of diversity-exclusion" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "connectivity-service-uuid" + in: "path" + description: "Id of diversity-exclusion" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceRef.body-param" + description: "tapi.connectivity.ConnectivityServiceRef to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "connectivity-service-uuid" + in: "path" + description: "Id of diversity-exclusion" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPoint.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPoint to be added to\ + \ list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceEndPoint" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPoint.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPoint to be added or\ + \ updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/capacity/total-size/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/connection-end-point={topology-uuid},{node-uuid},{node-edge-point-uuid},{connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/name={value-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/peer-fwd-connectivity-service-end-point/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/protecting-connectivity-service-end-point/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/server-connectivity-service-end-point/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectivityServiceEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ to list" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.connectivity.ConnectivityServiceEndPointRef.body-param" + description: "tapi.connectivity.ConnectivityServiceEndPointRef to be added\ + \ or updated" + required: false + schema: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.connectivity.ConnectivityServiceEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/end-point={local-id}/service-interface-point/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.ServiceInterfacePointRef" + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.ServiceInterfacePointRef.body-param" + description: "tapi.common.ServiceInterfacePointRef to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.ServiceInterfacePointRef.body-param" + description: "tapi.common.ServiceInterfacePointRef to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.LatencyCharacteristic.body-param" + description: "tapi.topology.LatencyCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.LatencyCharacteristic.body-param" + description: "tapi.topology.LatencyCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-cost/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-delay/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/max-allowed-hops/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/name={value-name}/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/requested-capacity/total-size/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/resilience-type/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ResilienceType" + schema: + $ref: "#/definitions/tapi.topology.ResilienceTypeWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.ResilienceType.body-param" + description: "tapi.topology.ResilienceType to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.ResilienceTypeWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.ResilienceType.body-param" + description: "tapi.topology.ResilienceType to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.ResilienceTypeWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic/: + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.RiskCharacteristic.body-param" + description: "tapi.topology.RiskCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.RiskCharacteristic.body-param" + description: "tapi.topology.RiskCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-connectivity:connectivity-context/connectivity-service={uuid}/schedule/: + get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.TimeRange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 200: + description: "tapi.common.TimeRange" + schema: + $ref: "#/definitions/tapi.common.TimeRangeWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-connectivity" + summary: "creates tapi.common.TimeRange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.TimeRange.body-param" + description: "tapi.common.TimeRange to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.TimeRangeWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-connectivity" + summary: "creates or updates tapi.common.TimeRange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.TimeRange.body-param" + description: "tapi.common.TimeRange to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.TimeRangeWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-connectivity" + summary: "removes tapi.common.TimeRange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of connectivity-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.NotificationContext" + description: "Augments the base TAPI Context with NotificationService information" + parameters: [] + responses: + 200: + description: "tapi.notification.NotificationContext" + schema: + $ref: "#/definitions/tapi.notification.NotificationContextWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-notification" + summary: "creates tapi.notification.NotificationContext" + description: "Augments the base TAPI Context with NotificationService information" + parameters: + - in: "body" + name: "tapi.notification.NotificationContext.body-param" + description: "tapi.notification.NotificationContext to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.notification.NotificationContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-notification" + summary: "creates or updates tapi.notification.NotificationContext" + description: "Augments the base TAPI Context with NotificationService information" + parameters: + - in: "body" + name: "tapi.notification.NotificationContext.body-param" + description: "tapi.notification.NotificationContext to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.notification.NotificationContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-notification" + summary: "removes tapi.notification.NotificationContext" + description: "Augments the base TAPI Context with NotificationService information" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription/: + post: + tags: + - "tapi-notification" + summary: "creates tapi.notification.NotificationSubscriptionService" + description: "none" + parameters: + - in: "body" + name: "tapi.notification.NotificationSubscriptionService.body-param" + description: "tapi.notification.NotificationSubscriptionService to be added\ + \ to list" + required: false + schema: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.NotificationSubscriptionService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.NotificationSubscriptionService" + schema: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionServiceWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-notification" + summary: "creates or updates tapi.notification.NotificationSubscriptionService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - in: "body" + name: "tapi.notification.NotificationSubscriptionService.body-param" + description: "tapi.notification.NotificationSubscriptionService to be added\ + \ or updated" + required: false + schema: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-notification" + summary: "removes tapi.notification.NotificationSubscriptionService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name/: + post: + tags: + - "tapi-notification" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/name={value-name}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-notification" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-notification" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.NotificationChannel" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.NotificationChannel" + schema: + $ref: "#/definitions/tapi.notification.NotificationChannelWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification-channel/name={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.Notification" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.Notification" + schema: + $ref: "#/definitions/tapi.notification.NotificationWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/additional-info={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of additional-info" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/alarm-info/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.AlarmInfo" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.AlarmInfo" + schema: + $ref: "#/definitions/tapi.notification.AlarmInfoWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/changed-attributes={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.NameAndValueChange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of changed-attributes" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.NameAndValueChange" + schema: + $ref: "#/definitions/tapi.notification.NameAndValueChangeWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/name={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/target-object-name={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of target-object-name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/notification={notification-uuid}/tca-info/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.TcaInfo" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "notification-uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.TcaInfo" + schema: + $ref: "#/definitions/tapi.notification.TcaInfoWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.SubscriptionFilter" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.SubscriptionFilter" + schema: + $ref: "#/definitions/tapi.notification.SubscriptionFilterWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-notification" + summary: "creates tapi.notification.SubscriptionFilter" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - in: "body" + name: "tapi.notification.SubscriptionFilter.body-param" + description: "tapi.notification.SubscriptionFilter to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.notification.SubscriptionFilterWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-notification" + summary: "creates or updates tapi.notification.SubscriptionFilter" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - in: "body" + name: "tapi.notification.SubscriptionFilter.body-param" + description: "tapi.notification.SubscriptionFilter to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.notification.SubscriptionFilterWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-notification" + summary: "removes tapi.notification.SubscriptionFilter" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name/: + post: + tags: + - "tapi-notification" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-notification:notification-context/notif-subscription={uuid}/subscription-filter/name={value-name}/ + : get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-notification" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-notification" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notif-subscription" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.Notification" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.Notification" + schema: + $ref: "#/definitions/tapi.notification.NotificationWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/additional-info={value-name}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of additional-info" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/alarm-info/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.AlarmInfo" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.AlarmInfo" + schema: + $ref: "#/definitions/tapi.notification.AlarmInfoWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/changed-attributes={value-name}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.NameAndValueChange" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of changed-attributes" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.NameAndValueChange" + schema: + $ref: "#/definitions/tapi.notification.NameAndValueChangeWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/name={value-name}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/target-object-name={value-name}/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.common.NameAndValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of target-object-name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-notification:notification-context/notification={uuid}/tca-info/: + get: + tags: + - "tapi-notification" + summary: "returns tapi.notification.TcaInfo" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of notification" + required: true + type: "string" + responses: + 200: + description: "tapi.notification.TcaInfo" + schema: + $ref: "#/definitions/tapi.notification.TcaInfoWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathComputationContext" + description: "Augments the base TAPI Context with PathComputationService information" + parameters: [] + responses: + 200: + description: "tapi.path.computation.PathComputationContext" + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationContextWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.PathComputationContext" + description: "Augments the base TAPI Context with PathComputationService information" + parameters: + - in: "body" + name: "tapi.path.computation.PathComputationContext.body-param" + description: "tapi.path.computation.PathComputationContext to be added to\ + \ list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.PathComputationContext" + description: "Augments the base TAPI Context with PathComputationService information" + parameters: + - in: "body" + name: "tapi.path.computation.PathComputationContext.body-param" + description: "tapi.path.computation.PathComputationContext to be added or\ + \ updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.PathComputationContext" + description: "Augments the base TAPI Context with PathComputationService information" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.PathComputationService" + description: "none" + parameters: + - in: "body" + name: "tapi.path.computation.PathComputationService.body-param" + description: "tapi.path.computation.PathComputationService to be added to\ + \ list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathComputationService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.PathComputationService" + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationServiceWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.PathComputationService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathComputationService.body-param" + description: "tapi.path.computation.PathComputationService to be added or\ + \ updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathComputationServiceWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.PathComputationService" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.PathServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathServiceEndPoint.body-param" + description: "tapi.path.computation.PathServiceEndPoint to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.PathServiceEndPoint" + schema: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPointWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.PathServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathServiceEndPoint.body-param" + description: "tapi.path.computation.PathServiceEndPoint to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPointWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.PathServiceEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.Capacity.body-param" + description: "tapi.common.Capacity to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.Capacity" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.BandwidthProfile.body-param" + description: "tapi.common.BandwidthProfile to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/capacity/total-size/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.CapacityValue.body-param" + description: "tapi.common.CapacityValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/name={value-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/end-point={local-id}/service-interface-point/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.ServiceInterfacePointRef" + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.ServiceInterfacePointRef.body-param" + description: "tapi.common.ServiceInterfacePointRef to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + - in: "body" + name: "tapi.common.ServiceInterfacePointRef.body-param" + description: "tapi.common.ServiceInterfacePointRef to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.ServiceInterfacePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of end-point" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/name={value-name}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathObjectiveFunction" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.PathObjectiveFunction" + schema: + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunctionWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.PathObjectiveFunction" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathObjectiveFunction.body-param" + description: "tapi.path.computation.PathObjectiveFunction to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunctionWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.PathObjectiveFunction" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathObjectiveFunction.body-param" + description: "tapi.path.computation.PathObjectiveFunction to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunctionWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.PathObjectiveFunction" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/objective-function/name={value-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathOptimizationConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.PathOptimizationConstraint" + schema: + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraintWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.PathOptimizationConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathOptimizationConstraint.body-param" + description: "tapi.path.computation.PathOptimizationConstraint to be added\ + \ to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.PathOptimizationConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.PathOptimizationConstraint.body-param" + description: "tapi.path.computation.PathOptimizationConstraint to be added\ + \ or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.PathOptimizationConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name/: + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/optimization-constraint/name={value-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + - in: "body" + name: "tapi.common.NameAndValue.body-param" + description: "tapi.common.NameAndValue to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/path={path-uuid}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.PathRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "path-uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.PathRef" + schema: + $ref: "#/definitions/tapi.path.computation.PathRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.RoutingConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.RoutingConstraint" + schema: + $ref: "#/definitions/tapi.path.computation.RoutingConstraintWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.RoutingConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.RoutingConstraint.body-param" + description: "tapi.path.computation.RoutingConstraint to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.RoutingConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.RoutingConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.RoutingConstraint.body-param" + description: "tapi.path.computation.RoutingConstraint to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.RoutingConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.RoutingConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic/ + : post: + tags: + - "tapi-path-computation" + summary: "creates tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.CostCharacteristic.body-param" + description: "tapi.topology.CostCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/cost-characteristic={cost-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.CostCharacteristic.body-param" + description: "tapi.topology.CostCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic/ + : post: + tags: + - "tapi-path-computation" + summary: "creates tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.LatencyCharacteristic.body-param" + description: "tapi.topology.LatencyCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.LatencyCharacteristic.body-param" + description: "tapi.topology.LatencyCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-cost/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-delay/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/max-allowed-hops/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.ValueOrPriority.body-param" + description: "tapi.path.computation.ValueOrPriority to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic/ + : post: + tags: + - "tapi-path-computation" + summary: "creates tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.topology.RiskCharacteristic.body-param" + description: "tapi.topology.RiskCharacteristic to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + - in: "body" + name: "tapi.topology.RiskCharacteristic.body-param" + description: "tapi.topology.RiskCharacteristic to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path-comp-service={uuid}/topology-constraint/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.TopologyConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.TopologyConstraint" + schema: + $ref: "#/definitions/tapi.path.computation.TopologyConstraintWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-path-computation" + summary: "creates tapi.path.computation.TopologyConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.TopologyConstraint.body-param" + description: "tapi.path.computation.TopologyConstraint to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.TopologyConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-path-computation" + summary: "creates or updates tapi.path.computation.TopologyConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + - in: "body" + name: "tapi.path.computation.TopologyConstraint.body-param" + description: "tapi.path.computation.TopologyConstraint to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.path.computation.TopologyConstraintWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-path-computation" + summary: "removes tapi.path.computation.TopologyConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path-comp-service" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.Path" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.Path" + schema: + $ref: "#/definitions/tapi.path.computation.PathWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/link={topology-uuid},{link-uuid}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.LinkRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LinkRef" + schema: + $ref: "#/definitions/tapi.topology.LinkRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/name={value-name}/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.RoutingConstraint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.RoutingConstraint" + schema: + $ref: "#/definitions/tapi.path.computation.RoutingConstraintWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/cost-characteristic={cost-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-cost/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-delay/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "Delay unit is microseconds." + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/max-allowed-hops/: + get: + tags: + - "tapi-path-computation" + summary: "returns tapi.path.computation.ValueOrPriority" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + responses: + 200: + description: "tapi.path.computation.ValueOrPriority" + schema: + $ref: "#/definitions/tapi.path.computation.ValueOrPriorityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-path-computation:path-computation-context/path={uuid}/routing-constraint/risk-diversity-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-path-computation" + summary: "returns tapi.topology.RiskCharacteristic" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of path" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-diversity-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.context.TopologyContext" + description: "Augments the base TAPI Context with TopologyService information" + parameters: [] + responses: + 200: + description: "tapi.topology.TopologyContext" + schema: + $ref: "#/definitions/tapi.topology.TopologyContextWrapper" + 400: + description: "Internal error" + post: + tags: + - "tapi-topology" + summary: "creates tapi.topology.context.TopologyContext" + description: "Augments the base TAPI Context with TopologyService information" + parameters: + - in: "body" + name: "tapi.topology.context.TopologyContext.body-param" + description: "tapi.topology.TopologyContext to be added to list" + required: false + schema: + $ref: "#/definitions/tapi.topology.TopologyContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 409: + description: "Object already exists" + put: + tags: + - "tapi-topology" + summary: "creates or updates tapi.topology.context.TopologyContext" + description: "Augments the base TAPI Context with TopologyService information" + parameters: + - in: "body" + name: "tapi.topology.context.TopologyContext.body-param" + description: "tapi.topology.TopologyContext to be added or updated" + required: false + schema: + $ref: "#/definitions/tapi.topology.TopologyContextWrapper" + responses: + 201: + description: "Object created" + 400: + description: "Internal error" + 204: + description: "Object modified" + delete: + tags: + - "tapi-topology" + summary: "removes tapi.topology.context.TopologyContext" + description: "Augments the base TAPI Context with TopologyService information" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NetworkTopologyService" + description: "none" + parameters: [] + responses: + 200: + description: "tapi.topology.NetworkTopologyService" + schema: + $ref: "#/definitions/tapi.topology.NetworkTopologyServiceWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/name={value-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/nw-topology-service/topology={topology-uuid}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.TopologyRef" + description: "none" + parameters: + - name: "topology-uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.TopologyRef" + schema: + $ref: "#/definitions/tapi.topology.TopologyRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.topologycontext.Topology" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.Topology" + schema: + $ref: "#/definitions/tapi.topology.TopologyWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.Link" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.Link" + schema: + $ref: "#/definitions/tapi.topology.LinkWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/available-capacity/total-size/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/cost-characteristic={cost-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/name={value-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/node-edge-point={topology-uuid},{node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/resilience-type/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.ResilienceType" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ResilienceType" + schema: + $ref: "#/definitions/tapi.topology.ResilienceTypeWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.RiskCharacteristic" + description: "A list of risk characteristics for consideration in an analysis\ + \ of shared risk. Each element of the list represents a specific risk consideration." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/total-potential-capacity/total-size/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/link={link-uuid}/validation-mechanism={validation-mechanism}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.ValidationMechanism" + description: "Provides details of the specific validation mechanism(s) used\ + \ to confirm the presence of an intended topologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "link-uuid" + in: "path" + description: "Id of link" + required: true + type: "string" + - name: "validation-mechanism" + in: "path" + description: "Id of validation-mechanism" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ValidationMechanism" + schema: + $ref: "#/definitions/tapi.topology.ValidationMechanismWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/name={value-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.topology.Node" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.topology.Node" + schema: + $ref: "#/definitions/tapi.topology.topology.NodeWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + - name: "aggregated-node-edge-point-node-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/available-capacity/total-size/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/cost-characteristic={cost-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/encap-topology/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.TopologyRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.TopologyRef" + schema: + $ref: "#/definitions/tapi.topology.TopologyRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/name={value-name}/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeRuleGroup" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeRuleGroup" + schema: + $ref: "#/definitions/tapi.topology.NodeRuleGroupWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/available-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/cost-characteristic={cost-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.InterRuleGroup" + description: "Nested NodeRuleGroups may have InterRuleGroups. The Superior NodeRuleGroup\ + \ contains the nested NodeRuleGroups and their associated InterRuleGroups.\r\ + \n This is equivalent to the Node-Topology hierarchy." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.InterRuleGroup" + schema: + $ref: "#/definitions/tapi.topology.InterRuleGroupWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/associated-node-rule-group={topology-uuid},{associated-node-rule-group-node-uuid},{associated-node-rule-group-node-rule-group-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeRuleGroupRef" + description: "The NodeRuleGroups that the InterRuleGroup constrains interconnection\ + \ between.\r\n The CEPs of the NEPs of a referenced NodeRuleGroup\ + \ can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup\ + \ constrained by the rules of the InterRuleGroup." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of associated-node-rule-group" + required: true + type: "string" + - name: "associated-node-rule-group-node-uuid" + in: "path" + description: "Id of associated-node-rule-group" + required: true + type: "string" + - name: "associated-node-rule-group-node-rule-group-uuid" + in: "path" + description: "Id of associated-node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeRuleGroupRef" + schema: + $ref: "#/definitions/tapi.topology.NodeRuleGroupRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/available-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/cost-characteristic={cost-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.CostCharacteristic" + description: "The list of costs where each cost relates to some aspect of the\ + \ TopologicalEntity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "cost-name" + in: "path" + description: "Id of cost-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.CostCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.CostCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/name={value-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.RiskCharacteristic" + description: "A list of risk characteristics for consideration in an analysis\ + \ of shared risk. Each element of the list represents a specific risk consideration." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.Rule" + description: "The list of rules of the InterRuleGroup." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.Rule" + schema: + $ref: "#/definitions/tapi.topology.RuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/cep-port-role/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.PortRoleRule" + description: "Indicates the port role to which the rule applies. \r\n \ + \ The port role is interpreted in the context of the connection type\ + \ which is identified by the connection spec. \r\n The port\ + \ role is not meaningful in the absence of a connection spec reference.\r\n\ + \ If a node rule group carries a port role, that role applies\ + \ also to the associated inter rule where the combination of the roles in\ + \ the node rule groups at the ends of the inter group rule define the connection\ + \ orientation.\r\n For example a root-and-leaf connection may\ + \ be used in a node where a node rule group collects one set of NEPs has the\ + \ port role 'root' and another node rule group collects another set of NEPs\ + \ has the port role 'leaf' where these are joined by an inter rule group.\ + \ This combination specifies an allowed orientation of the root-and-leaf connection.\r\ + \n No port role statement means all port roles are allowed." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.PortRoleRule" + schema: + $ref: "#/definitions/tapi.topology.PortRoleRuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/connection-spec-reference/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.ConnectionSpecReference" + description: "Identifies the type of connection that the rule applies to. \r\ + \n If the attribute is not present then the rule applies to\ + \ all types of connection supported by the device." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ConnectionSpecReference" + schema: + $ref: "#/definitions/tapi.topology.ConnectionSpecReferenceWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/name={value-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/rule={local-id}/signal-property/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.SignalPropertyRule" + description: "The rule only applies to signals with the properties listed. \r\ + \n If the attribute is not present then the rule applies to\ + \ all signals." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.SignalPropertyRule" + schema: + $ref: "#/definitions/tapi.topology.SignalPropertyRuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/inter-rule-group={inter-rule-group-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "inter-rule-group-uuid" + in: "path" + description: "Id of inter-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/latency-characteristic={traffic-property-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.LatencyCharacteristic" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "traffic-property-name" + in: "path" + description: "Id of latency-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.LatencyCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.LatencyCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/name={value-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-edge-point={topology-uuid},{node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "NEPs and their client CEPs that the rules apply to." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + - name: "node-edge-point-node-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/node-rule-group={topology-uuid},{node-rule-group-node-uuid},{node-rule-group-node-rule-group-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeRuleGroupRef" + description: "NodeRuleGroups may be nested such that finer grained rules may\ + \ be applied.\r\n A nested rule group should have a subset\ + \ of the NEPs of the superior rule group." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "node-rule-group-node-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "node-rule-group-node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeRuleGroupRef" + schema: + $ref: "#/definitions/tapi.topology.NodeRuleGroupRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/risk-characteristic={risk-characteristic-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.RiskCharacteristic" + description: "A list of risk characteristics for consideration in an analysis\ + \ of shared risk. Each element of the list represents a specific risk consideration." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "risk-characteristic-name" + in: "path" + description: "Id of risk-characteristic" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.RiskCharacteristic" + schema: + $ref: "#/definitions/tapi.topology.RiskCharacteristicWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.Rule" + description: "The list of rules of the NodeRuleGroup." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.Rule" + schema: + $ref: "#/definitions/tapi.topology.RuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/cep-port-role/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.PortRoleRule" + description: "Indicates the port role to which the rule applies. \r\n \ + \ The port role is interpreted in the context of the connection type\ + \ which is identified by the connection spec. \r\n The port\ + \ role is not meaningful in the absence of a connection spec reference.\r\n\ + \ If a node rule group carries a port role, that role applies\ + \ also to the associated inter rule where the combination of the roles in\ + \ the node rule groups at the ends of the inter group rule define the connection\ + \ orientation.\r\n For example a root-and-leaf connection may\ + \ be used in a node where a node rule group collects one set of NEPs has the\ + \ port role 'root' and another node rule group collects another set of NEPs\ + \ has the port role 'leaf' where these are joined by an inter rule group.\ + \ This combination specifies an allowed orientation of the root-and-leaf connection.\r\ + \n No port role statement means all port roles are allowed." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.PortRoleRule" + schema: + $ref: "#/definitions/tapi.topology.PortRoleRuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/connection-spec-reference/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.ConnectionSpecReference" + description: "Identifies the type of connection that the rule applies to. \r\ + \n If the attribute is not present then the rule applies to\ + \ all types of connection supported by the device." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.ConnectionSpecReference" + schema: + $ref: "#/definitions/tapi.topology.ConnectionSpecReferenceWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/name={value-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/rule={local-id}/signal-property/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.SignalPropertyRule" + description: "The rule only applies to signals with the properties listed. \r\ + \n If the attribute is not present then the rule applies to\ + \ all signals." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + - name: "local-id" + in: "path" + description: "Id of rule" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.SignalPropertyRule" + schema: + $ref: "#/definitions/tapi.topology.SignalPropertyRuleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/node-rule-group={node-rule-group-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "node-rule-group-uuid" + in: "path" + description: "Id of node-rule-group" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.node.OwnedNodeEdgePoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.node.OwnedNodeEdgePoint" + schema: + $ref: "#/definitions/tapi.topology.node.OwnedNodeEdgePointWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/aggregated-node-edge-point={topology-uuid},{aggregated-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + - name: "aggregated-node-edge-point-node-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of aggregated-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "Capacity available to be assigned." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/available-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/mapped-service-interface-point={service-interface-point-uuid}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.ServiceInterfacePointRef" + description: "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing)\ + \ or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load balancing/Resilience)\ + \ should be considered experimental" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "service-interface-point-uuid" + in: "path" + description: "Id of mapped-service-interface-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.ServiceInterfacePointRef" + schema: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/name={value-name}/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.CepList" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.CepList" + schema: + $ref: "#/definitions/tapi.connectivity.CepListWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPoint" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPoint" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/aggregated-connection-end-point={topology-uuid},{aggregated-connection-end-point-node-uuid},{node-edge-point-uuid},{aggregated-connection-end-point-connection-end-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionEndPointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of aggregated-connection-end-point" + required: true + type: "string" + - name: "aggregated-connection-end-point-node-uuid" + in: "path" + description: "Id of aggregated-connection-end-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of aggregated-connection-end-point" + required: true + type: "string" + - name: "aggregated-connection-end-point-connection-end-point-uuid" + in: "path" + description: "Id of aggregated-connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionEndPointRef" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.CepRole" + description: "Defines the role of the CEP in the context of the connection spec.\r\ + \n There may be many cep role - connection spec combinations\ + \ for a particular CEP where each corresponds to a specific connection associated\ + \ with the CEP." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.CepRole" + schema: + $ref: "#/definitions/tapi.connectivity.CepRoleWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/cep-role/connection-spec-reference/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.connectivity.ConnectionSpecReference" + description: "The reference to the spec that defines the cep role." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.connectivity.ConnectionSpecReference" + schema: + $ref: "#/definitions/tapi.connectivity.ConnectionSpecReferenceWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/client-node-edge-point={topology-uuid},{client-node-edge-point-node-uuid},{node-edge-point-uuid}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "topology-uuid" + in: "path" + description: "Id of client-node-edge-point" + required: true + type: "string" + - name: "client-node-edge-point-node-uuid" + in: "path" + description: "Id of client-node-edge-point" + required: true + type: "string" + - name: "node-edge-point-uuid" + in: "path" + description: "Id of client-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/name={value-name}/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.common.NameAndValue" + description: "List of names. A property of an entity with a value that is unique\ + \ in some namespace but may change during the life of the entity. A name carries\ + \ no semantics with respect to the purpose of the entity." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + - name: "value-name" + in: "path" + description: "Id of name" + required: true + type: "string" + responses: + 200: + description: "tapi.common.NameAndValue" + schema: + $ref: "#/definitions/tapi.common.NameAndValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/tapi-connectivity:cep-list/connection-end-point={connection-end-point-uuid}/parent-node-edge-point/ + : get: + tags: + - "tapi-connectivity" + summary: "returns tapi.topology.NodeEdgePointRef" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + - name: "connection-end-point-uuid" + in: "path" + description: "Id of connection-end-point" + required: true + type: "string" + responses: + 200: + description: "tapi.topology.NodeEdgePointRef" + schema: + $ref: "#/definitions/tapi.topology.NodeEdgePointRefWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/owned-node-edge-point={owned-node-edge-point-uuid}/total-potential-capacity/total-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + - name: "owned-node-edge-point-uuid" + in: "path" + description: "Id of owned-node-edge-point" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.Capacity" + description: "An optimistic view of the capacity of the TopologicalEntity assuming\ + \ that any shared capacity is available to be taken." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.Capacity" + schema: + $ref: "#/definitions/tapi.common.CapacityWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.BandwidthProfile" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.BandwidthProfile" + schema: + $ref: "#/definitions/tapi.common.BandwidthProfileWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/committed-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-burst-size/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + ? /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/bandwidth-profile/peak-information-rate/ + : get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "none" + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /data/tapi-common:context/tapi-topology:topology-context/topology={uuid}/node={node-uuid}/total-potential-capacity/total-size/: + get: + tags: + - "tapi-topology" + summary: "returns tapi.common.CapacityValue" + description: "Total capacity of the TopologicalEntity in MB/s. In case of bandwidthProfile,\ + \ this is expected to same as the committedInformationRate." + parameters: + - name: "uuid" + in: "path" + description: "Id of topology" + required: true + type: "string" + - name: "node-uuid" + in: "path" + description: "Id of node" + required: true + type: "string" + responses: + 200: + description: "tapi.common.CapacityValue" + schema: + $ref: "#/definitions/tapi.common.CapacityValueWrapper" + 400: + description: "Internal error" + /operations/tapi-common:get-service-interface-point-details/: + post: + tags: + - "tapi-common" + summary: "operates on tapi.common.GetServiceInterfacePointDetails" + description: "operates on tapi.common.GetServiceInterfacePointDetails" + parameters: + - in: "body" + name: "tapi.common.getserviceinterfacepointdetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.common.getserviceinterfacepointdetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.common.GetServiceInterfacePointDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-common:get-service-interface-point-list/: + post: + tags: + - "tapi-common" + parameters: [] + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.common.GetServiceInterfacePointList" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-common:update-service-interface-point/: + post: + tags: + - "tapi-common" + summary: "operates on tapi.common.UpdateServiceInterfacePoint" + description: "operates on tapi.common.UpdateServiceInterfacePoint" + parameters: + - in: "body" + name: "tapi.common.updateserviceinterfacepoint.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.common.updateserviceinterfacepoint.Input" + responses: + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:create-connectivity-service/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.CreateConnectivityService" + description: "operates on tapi.connectivity.CreateConnectivityService" + parameters: + - in: "body" + name: "tapi.connectivity.createconnectivityservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.createconnectivityservice.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.CreateConnectivityService" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:delete-connectivity-service/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.DeleteConnectivityService" + description: "operates on tapi.connectivity.DeleteConnectivityService" + parameters: + - in: "body" + name: "tapi.connectivity.deleteconnectivityservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.deleteconnectivityservice.Input" + responses: + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:get-connection-details/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.GetConnectionDetails" + description: "operates on tapi.connectivity.GetConnectionDetails" + parameters: + - in: "body" + name: "tapi.connectivity.getconnectiondetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.getconnectiondetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.GetConnectionDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:get-connection-end-point-details/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.GetConnectionEndPointDetails" + description: "operates on tapi.connectivity.GetConnectionEndPointDetails" + parameters: + - in: "body" + name: "tapi.connectivity.getconnectionendpointdetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.getconnectionendpointdetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.GetConnectionEndPointDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:get-connectivity-service-details/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.GetConnectivityServiceDetails" + description: "operates on tapi.connectivity.GetConnectivityServiceDetails" + parameters: + - in: "body" + name: "tapi.connectivity.getconnectivityservicedetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.getconnectivityservicedetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.GetConnectivityServiceDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:get-connectivity-service-list/: + post: + tags: + - "tapi-connectivity" + parameters: [] + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.GetConnectivityServiceList" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-connectivity:update-connectivity-service/: + post: + tags: + - "tapi-connectivity" + summary: "operates on tapi.connectivity.UpdateConnectivityService" + description: "operates on tapi.connectivity.UpdateConnectivityService" + parameters: + - in: "body" + name: "tapi.connectivity.updateconnectivityservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.connectivity.updateconnectivityservice.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.connectivity.UpdateConnectivityService" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:create-notification-subscription-service/: + post: + tags: + - "tapi-notification" + summary: "operates on tapi.notification.CreateNotificationSubscriptionService" + description: "operates on tapi.notification.CreateNotificationSubscriptionService" + parameters: + - in: "body" + name: "tapi.notification.createnotificationsubscriptionservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.notification.createnotificationsubscriptionservice.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.CreateNotificationSubscriptionService" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:delete-notification-subscription-service/: + post: + tags: + - "tapi-notification" + summary: "operates on tapi.notification.DeleteNotificationSubscriptionService" + description: "operates on tapi.notification.DeleteNotificationSubscriptionService" + parameters: + - in: "body" + name: "tapi.notification.deletenotificationsubscriptionservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.notification.deletenotificationsubscriptionservice.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.DeleteNotificationSubscriptionService" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:get-notification-list/: + post: + tags: + - "tapi-notification" + summary: "operates on tapi.notification.GetNotificationList" + description: "operates on tapi.notification.GetNotificationList" + parameters: + - in: "body" + name: "tapi.notification.getnotificationlist.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.notification.getnotificationlist.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.GetNotificationList" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:get-notification-subscription-service-details/: + post: + tags: + - "tapi-notification" + summary: "operates on tapi.notification.GetNotificationSubscriptionServiceDetails" + description: "operates on tapi.notification.GetNotificationSubscriptionServiceDetails" + parameters: + - in: "body" + name: "tapi.notification.getnotificationsubscriptionservicedetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.notification.getnotificationsubscriptionservicedetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.GetNotificationSubscriptionServiceDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:get-notification-subscription-service-list/: + post: + tags: + - "tapi-notification" + parameters: [] + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.GetNotificationSubscriptionServiceList" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:get-supported-notification-types/: + post: + tags: + - "tapi-notification" + parameters: [] + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.GetSupportedNotificationTypes" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-notification:update-notification-subscription-service/: + post: + tags: + - "tapi-notification" + summary: "operates on tapi.notification.UpdateNotificationSubscriptionService" + description: "operates on tapi.notification.UpdateNotificationSubscriptionService" + parameters: + - in: "body" + name: "tapi.notification.updatenotificationsubscriptionservice.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.notification.updatenotificationsubscriptionservice.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.notification.UpdateNotificationSubscriptionService" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-path-computation:compute-p-2-p-path/: + post: + tags: + - "tapi-path-computation" + summary: "operates on tapi.path.computation.ComputeP2PPath" + description: "operates on tapi.path.computation.ComputeP2PPath" + parameters: + - in: "body" + name: "tapi.path.computation.computep2ppath.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.path.computation.computep2ppath.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.path.computation.ComputeP2PPath" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-path-computation:delete-p-2-p-path/: + post: + tags: + - "tapi-path-computation" + summary: "operates on tapi.path.computation.DeleteP2PPath" + description: "operates on tapi.path.computation.DeleteP2PPath" + parameters: + - in: "body" + name: "tapi.path.computation.deletep2ppath.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.path.computation.deletep2ppath.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.path.computation.DeleteP2PPath" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-path-computation:optimize-p-2-ppath/: + post: + tags: + - "tapi-path-computation" + summary: "operates on tapi.path.computation.OptimizeP2Ppath" + description: "operates on tapi.path.computation.OptimizeP2Ppath" + parameters: + - in: "body" + name: "tapi.path.computation.optimizep2ppath.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.path.computation.optimizep2ppath.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.path.computation.OptimizeP2Ppath" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-topology:get-link-details/: + post: + tags: + - "tapi-topology" + summary: "operates on tapi.topology.GetLinkDetails" + description: "operates on tapi.topology.GetLinkDetails" + parameters: + - in: "body" + name: "tapi.topology.getlinkdetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.topology.getlinkdetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.topology.GetLinkDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-topology:get-node-details/: + post: + tags: + - "tapi-topology" + summary: "operates on tapi.topology.GetNodeDetails" + description: "operates on tapi.topology.GetNodeDetails" + parameters: + - in: "body" + name: "tapi.topology.getnodedetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.topology.getnodedetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.topology.GetNodeDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-topology:get-node-edge-point-details/: + post: + tags: + - "tapi-topology" + summary: "operates on tapi.topology.GetNodeEdgePointDetails" + description: "operates on tapi.topology.GetNodeEdgePointDetails" + parameters: + - in: "body" + name: "tapi.topology.getnodeedgepointdetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.topology.getnodeedgepointdetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.topology.GetNodeEdgePointDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-topology:get-topology-details/: + post: + tags: + - "tapi-topology" + summary: "operates on tapi.topology.GetTopologyDetails" + description: "operates on tapi.topology.GetTopologyDetails" + parameters: + - in: "body" + name: "tapi.topology.gettopologydetails.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/tapi.topology.gettopologydetails.Input" + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.topology.GetTopologyDetails" + 201: + description: "No response" + 400: + description: "Internal error" + /operations/tapi-topology:get-topology-list/: + post: + tags: + - "tapi-topology" + parameters: [] + responses: + 200: + description: "Correct response" + schema: + $ref: "#/definitions/tapi.topology.GetTopologyList" + 201: + description: "No response" + 400: + description: "Internal error" +definitions: + tapi.common.AdminStatePac: + type: "object" + properties: + operational-state: + description: "none" + $ref: "#/definitions/tapi.common.OperationalState" + lifecycle-state: + description: "none" + $ref: "#/definitions/tapi.common.LifecycleState" + administrative-state: + description: "none" + $ref: "#/definitions/tapi.common.AdministrativeState" + tapi.common.AdministrativeState: + type: "string" + enum: + - "LOCKED" + - "UNLOCKED" + tapi.common.BandwidthProfile: + type: "object" + properties: + committed-information-rate: + description: "none" + $ref: "#/definitions/tapi.common.CapacityValue" + coupling-flag: + type: "boolean" + description: "none" + default: false + bw-profile-type: + description: "none" + $ref: "#/definitions/tapi.common.BandwidthProfileType" + peak-information-rate: + description: "none" + $ref: "#/definitions/tapi.common.CapacityValue" + committed-burst-size: + description: "none" + $ref: "#/definitions/tapi.common.CapacityValue" + peak-burst-size: + description: "none" + $ref: "#/definitions/tapi.common.CapacityValue" + color-aware: + type: "boolean" + description: "none" + default: false + tapi.common.BandwidthProfileType: + type: "string" + enum: + - "MEF_10.x" + - "RFC_2697" + - "RFC_2698" + - "RFC_4115" + tapi.common.BandwidthProfileWrapper: + properties: + bandwidth-profile: + $ref: "#/definitions/tapi.common.BandwidthProfile" + tapi.common.Capacity: + type: "object" + properties: + bandwidth-profile: + description: "none" + $ref: "#/definitions/tapi.common.BandwidthProfile" + total-size: + description: "Total capacity of the TopologicalEntity in MB/s. In case of\ + \ bandwidthProfile, this is expected to same as the committedInformationRate." + $ref: "#/definitions/tapi.common.CapacityValue" + tapi.common.CapacityPac: + type: "object" + properties: + available-capacity: + description: "Capacity available to be assigned." + $ref: "#/definitions/tapi.common.Capacity" + total-potential-capacity: + description: "An optimistic view of the capacity of the TopologicalEntity\ + \ assuming that any shared capacity is available to be taken." + $ref: "#/definitions/tapi.common.Capacity" + tapi.common.CapacityUnit: + type: "string" + enum: + - "TB" + - "TBPS" + - "GB" + - "GBPS" + - "MB" + - "MBPS" + - "KB" + - "KBPS" + - "GHz" + - "MHz" + tapi.common.CapacityValue: + type: "object" + properties: + value: + type: "integer" + format: "int32" + description: "none" + unit: + description: "none" + $ref: "#/definitions/tapi.common.CapacityUnit" + tapi.common.CapacityValueWrapper: + properties: + committed-burst-size: + $ref: "#/definitions/tapi.common.CapacityValue" + tapi.common.CapacityWrapper: + properties: + available-capacity: + $ref: "#/definitions/tapi.common.Capacity" + tapi.common.Context: + allOf: + - $ref: "#/definitions/tapi.common.TapiContext" + - $ref: "#/definitions/tapi.connectivity.ContextAugmentation3" + - $ref: "#/definitions/tapi.notification.ContextAugmentation1" + - $ref: "#/definitions/tapi.path.computation.ContextAugmentation2" + - $ref: "#/definitions/tapi.topology.ContextAugmentation4" + tapi.common.ContextWrapper: + properties: + tapi-common:context: + $ref: "#/definitions/tapi.common.Context" + tapi.common.DirectiveValue: + type: "string" + enum: + - "MINIMIZE" + - "MAXIMIZE" + - "ALLOW" + - "DISALLOW" + - "DONT_CARE" + tapi.common.ForwardingDirection: + type: "string" + enum: + - "BIDIRECTIONAL" + - "UNIDIRECTIONAL" + - "UNDEFINED_OR_UNKNOWN" + tapi.common.GetServiceInterfacePointDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.common.getserviceinterfacepointdetails.Output" + tapi.common.GetServiceInterfacePointList: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.common.getserviceinterfacepointlist.Output" + tapi.common.GlobalClass: + type: "object" + properties: + name: + type: "array" + description: "List of names. A property of an entity with a value that is\ + \ unique in some namespace but may change during the life of the entity.\ + \ A name carries no semantics with respect to the purpose of the entity." + items: + $ref: "#/definitions/tapi.common.NameAndValue" + uuid: + type: "string" + description: "UUID: An identifier that is universally unique within an identifier\ + \ space, where the identifier space is itself globally unique, and immutable.\ + \ An UUID carries no semantics with respect to the purpose or state of the\ + \ entity.\r\n UUID here uses string representation as defined\ + \ in RFC 4122. The canonical representation uses lowercase characters.\r\ + \n Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'\ + \ + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} \r\n Example of a UUID\ + \ in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6" + tapi.common.LayerProtocolName: + type: "string" + enum: + - "ODU" + - "ETH" + - "DSR" + - "PHOTONIC_MEDIA" + tapi.common.LifecycleState: + type: "string" + enum: + - "PLANNED" + - "POTENTIAL_AVAILABLE" + - "POTENTIAL_BUSY" + - "INSTALLED" + - "PENDING_REMOVAL" + tapi.common.LocalClass: + type: "object" + properties: + name: + type: "array" + description: "List of names. A property of an entity with a value that is\ + \ unique in some namespace but may change during the life of the entity.\ + \ A name carries no semantics with respect to the purpose of the entity." + items: + $ref: "#/definitions/tapi.common.NameAndValue" + local-id: + type: "string" + description: "none" + tapi.common.NameAndValue: + type: "object" + properties: + value-name: + type: "string" + description: "The name of the value. The value need not have a name." + value: + type: "string" + description: "The value" + tapi.common.NameAndValueWrapper: + properties: + name: + $ref: "#/definitions/tapi.common.NameAndValue" + tapi.common.OperationalState: + type: "string" + enum: + - "DISABLED" + - "ENABLED" + tapi.common.OperationalStatePac: + type: "object" + properties: + operational-state: + description: "none" + $ref: "#/definitions/tapi.common.OperationalState" + lifecycle-state: + description: "none" + $ref: "#/definitions/tapi.common.LifecycleState" + tapi.common.PortDirection: + type: "string" + enum: + - "BIDIRECTIONAL" + - "INPUT" + - "OUTPUT" + - "UNIDENTIFIED_OR_UNKNOWN" + tapi.common.PortRole: + type: "string" + enum: + - "SYMMETRIC" + - "ROOT" + - "LEAF" + - "TRUNK" + - "UNKNOWN" + tapi.common.ServiceInterfacePoint: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + supported-layer-protocol-qualifier: + type: "array" + description: "none" + items: + type: "string" + layer-protocol-name: + description: "Usage of layerProtocolName [>1] in the ServiceInterfacePoint\ + \ should be considered experimental" + $ref: "#/definitions/tapi.common.LayerProtocolName" + direction: + description: "If direction attribute is missing the SIP instance is to be\ + \ intended as 'BIDIRECTIONAL'" + $ref: "#/definitions/tapi.common.PortDirection" + description: "The LogicalTerminationPoint (LTP) object class encapsulates the\ + \ termination and adaptation functions of one or more transport layers. \r\ + \n The structure of LTP supports all transport protocols including\ + \ circuit and packet forms." + tapi.common.ServiceInterfacePointRef: + type: "object" + properties: + service-interface-point-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid" + tapi.common.ServiceInterfacePointRefWrapper: + properties: + service-interface-point: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRef" + tapi.common.ServiceInterfacePointWrapper: + properties: + service-interface-point: + $ref: "#/definitions/tapi.common.ServiceInterfacePoint" + tapi.common.TapiContext: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + service-interface-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.ServiceInterfacePoint" + description: "The Network Control Domain (NCD) object class represents the scope\ + \ of control that a particular SDN controller has with respect to a particular\ + \ network, (i.e., encompassing a designated set of interconnected (virtual)\ + \ network elements)." + tapi.common.TerminationDirection: + type: "string" + enum: + - "BIDIRECTIONAL" + - "SINK" + - "SOURCE" + - "UNDEFINED_OR_UNKNOWN" + tapi.common.TerminationPac: + type: "object" + properties: + termination-direction: + description: "The overall directionality of the LP. \r\n -\ + \ A BIDIRECTIONAL LP will have some SINK and/or SOURCE flowss.\r\n \ + \ - A SINK LP can only contain elements with SINK flows or CONTRA_DIRECTION_SOURCE\ + \ flows\r\n - A SOURCE LP can only contain SOURCE flows or\ + \ CONTRA_DIRECTION_SINK flows" + $ref: "#/definitions/tapi.common.TerminationDirection" + termination-state: + description: "Indicates whether the layer is terminated and if so how." + $ref: "#/definitions/tapi.common.TerminationState" + tapi.common.TerminationState: + type: "string" + enum: + - "LP_CAN_NEVER_TERMINATE" + - "LT_NOT_TERMINATED" + - "TERMINATED_SERVER_TO_CLIENT_FLOW" + - "TERMINATED_CLIENT_TO_SERVER_FLOW" + - "TERMINATED_BIDIRECTIONAL" + - "LT_PERMENANTLY_TERMINATED" + - "TERMINATION_STATE_UNKNOWN" + tapi.common.TimeRange: + type: "object" + properties: + end-time: + type: "string" + description: "none" + start-time: + type: "string" + description: "none" + tapi.common.TimeRangeWrapper: + properties: + schedule: + $ref: "#/definitions/tapi.common.TimeRange" + tapi.common.getserviceinterfacepointdetails.Input: + type: "object" + properties: + sip-id-or-name: + type: "string" + description: "none" + tapi.common.getserviceinterfacepointdetails.Output: + type: "object" + properties: + sip: + description: "none" + $ref: "#/definitions/tapi.common.ServiceInterfacePoint" + tapi.common.getserviceinterfacepointlist.Output: + type: "object" + properties: + sip: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.ServiceInterfacePoint" + tapi.common.updateserviceinterfacepoint.Input: + type: "object" + properties: + sip-id-or-name: + type: "string" + description: "none" + state: + description: "none" + $ref: "#/definitions/tapi.common.AdministrativeState" + tapi.connectivity.CepList: + type: "object" + properties: + connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPoint" + tapi.connectivity.CepListWrapper: + properties: + tapi-connectivity:cep-list: + $ref: "#/definitions/tapi.connectivity.CepList" + tapi.connectivity.CepRole: + type: "object" + properties: + role-name: + type: "string" + description: "The name of the cep role in the context of the referenced spec." + connection-spec-reference: + description: "The reference to the spec that defines the cep role." + $ref: "#/definitions/tapi.connectivity.ConnectionSpecReference" + tapi.connectivity.CepRoleWrapper: + properties: + cep-role: + $ref: "#/definitions/tapi.connectivity.CepRole" + tapi.connectivity.Connection: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.common.OperationalStatePac" + - type: "object" + properties: + supported-client-link: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.LinkRef" + lower-connection: + type: "array" + description: "An Connection object supports a recursive aggregation relationship\ + \ such that the internal construction of an Connection can be exposed\ + \ as multiple lower level Connection objects (partitioning).\r\n \ + \ Aggregation is used as for the Node/Topology to allow changes\ + \ in hierarchy. \r\n Connection aggregation reflects Node/Topology\ + \ aggregation. \r\n The FC represents a Cross-Connection\ + \ in an NE. The Cross-Connection in an NE is not necessarily the lowest\ + \ level of FC partitioning." + items: + $ref: "#/definitions/tapi.connectivity.ConnectionRef" + switch-control: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.SwitchControl" + route: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.Route" + connection-spec-reference: + description: "Provides the reference to the spec that defines the connection\ + \ type and cepRoles." + $ref: "#/definitions/tapi.connectivity.ConnectionSpecReference" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + direction: + description: "none" + $ref: "#/definitions/tapi.common.ForwardingDirection" + description: "The ForwardingConstruct (FC) object class models enabled potential\ + \ for forwarding between two or more LTPs and like the LTP supports any transport\ + \ protocol including all circuit and packet forms.\r\n At the lowest\ + \ level of recursion, a FC represents a cross-connection within an NE." + tapi.connectivity.ConnectionEndPoint: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.common.OperationalStatePac" + - $ref: "#/definitions/tapi.common.TerminationPac" + - type: "object" + properties: + client-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + connection-port-role: + description: "Each EP of the FC has a role (e.g., working, protection, protected,\ + \ symmetric, hub, spoke, leaf, root) in the context of the FC with respect\ + \ to the FC function. " + $ref: "#/definitions/tapi.common.PortRole" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + layer-protocol-qualifier: + type: "string" + description: "none" + parent-node-edge-point: + description: "none" + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + cep-role: + type: "array" + description: "Defines the role of the CEP in the context of the connection\ + \ spec.\r\n There may be many cep role - connection spec\ + \ combinations for a particular CEP where each corresponds to a specific\ + \ connection associated with the CEP." + items: + $ref: "#/definitions/tapi.connectivity.CepRole" + aggregated-connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + connection-port-direction: + description: "The orientation of defined flow at the EndPoint." + $ref: "#/definitions/tapi.common.PortDirection" + description: "The LogicalTerminationPoint (LTP) object class encapsulates the\ + \ termination and adaptation functions of one or more transport layers. \r\ + \n The structure of LTP supports all transport protocols including\ + \ circuit and packet forms." + tapi.connectivity.ConnectionEndPointRef: + allOf: + - $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + - type: "object" + properties: + connection-end-point-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:cep-list/tapi-connectivity:connection-end-point/tapi-connectivity:uuid" + description: "none" + tapi.connectivity.ConnectionEndPointRefWrapper: + properties: + connection-end-point: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + tapi.connectivity.ConnectionEndPointWrapper: + properties: + connection-end-point: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPoint" + tapi.connectivity.ConnectionRef: + type: "object" + properties: + connection-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:uuid" + tapi.connectivity.ConnectionRefWrapper: + properties: + lower-connection: + $ref: "#/definitions/tapi.connectivity.ConnectionRef" + tapi.connectivity.ConnectionSpecReference: + type: "object" + properties: + connection-spec-name: + type: "string" + description: "The name of the connection spec.\r\n This can\ + \ be used alone (with no spec reference) where there is only a paper spec." + connection-spec-id: + type: "string" + description: "The reference to a formal spec. \r\n This reference\ + \ need not be provided (e.g., where there is no formal machine interpretable\ + \ spec for the type of connection)." + tapi.connectivity.ConnectionSpecReferenceWrapper: + properties: + connection-spec-reference: + $ref: "#/definitions/tapi.connectivity.ConnectionSpecReference" + tapi.connectivity.ConnectionWrapper: + properties: + connection: + $ref: "#/definitions/tapi.connectivity.Connection" + tapi.connectivity.ConnectivityConstraint: + type: "object" + properties: + service-layer: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + schedule: + description: "none" + $ref: "#/definitions/tapi.common.TimeRange" + connectivity-direction: + description: "none" + $ref: "#/definitions/tapi.common.ForwardingDirection" + requested-capacity: + description: "none" + $ref: "#/definitions/tapi.common.Capacity" + diversity-exclusion: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRef" + connection-inclusion: + type: "array" + description: "A ConnectivityService may use one or more existing Connections.\r\ + \n A common traditional strategy is to set up “stranded”\ + \ connectivity in the core of the network as “express channels” (this is\ + \ essentially a serial compound link, but can be treated as simple connections)\r\ + \n A connection inclusion capability allows for adoption\ + \ of a discovered Connections.\r\n A ConnectivityService\ + \ is requested with a connection inclusion constraint that identifies a\ + \ connection (or chain of connections) that is bounded by CEPs that each\ + \ belong to a NEP that references a SIP that is referenced by a CSEP of\ + \ the ConnectivityService such that all CSEPs are satisfied by CEPs of the\ + \ existing Connection. will allow discovered Connections with no stated\ + \ intent to be associated with an intent via the ConnectivityService." + items: + type: "string" + service-level: + type: "string" + description: "An abstract value the meaning of which is mutually agreed –\ + \ typically represents metrics such as - Class of service, priority, resiliency,\ + \ availability" + service-type: + description: "none" + $ref: "#/definitions/tapi.connectivity.ServiceType" + connection-exclusion: + type: "array" + description: "none" + items: + type: "string" + coroute-inclusion: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRef" + tapi.connectivity.ConnectivityContext: + type: "object" + properties: + connectivity-service: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + connection: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.Connection" + tapi.connectivity.ConnectivityContextWrapper: + properties: + tapi-connectivity:connectivity-context: + $ref: "#/definitions/tapi.connectivity.ConnectivityContext" + tapi.connectivity.ConnectivityService: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.connectivity.ConnectivityConstraint" + - $ref: "#/definitions/tapi.connectivity.ResilienceConstraint" + - $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + - $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + - type: "object" + properties: + end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPoint" + connection: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionRef" + description: "The ForwardingConstruct (FC) object class models enabled potential\ + \ for forwarding between two or more LTPs and like the LTP supports any transport\ + \ protocol including all circuit and packet forms.\r\n At the lowest\ + \ level of recursion, a FC represents a cross-connection within an NE." + tapi.connectivity.ConnectivityServiceEndPoint: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + protection-role: + description: "To specify the protection role of this Port when create or\ + \ update ConnectivityService." + $ref: "#/definitions/tapi.connectivity.ProtectionRole" + role: + description: "Each EP of the FC has a role (e.g., working, protection, protected,\ + \ symmetric, hub, spoke, leaf, root) in the context of the FC with respect\ + \ to the FC function. " + $ref: "#/definitions/tapi.common.PortRole" + service-interface-point: + description: "none" + $ref: "#/definitions/tapi.common.ServiceInterfacePointRef" + peer-fwd-connectivity-service-end-point: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRef" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + layer-protocol-qualifier: + type: "string" + description: "none" + connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + server-connectivity-service-end-point: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRef" + protecting-connectivity-service-end-point: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRef" + direction: + description: "The orientation of defined flow at the EndPoint." + $ref: "#/definitions/tapi.common.PortDirection" + capacity: + description: "none" + $ref: "#/definitions/tapi.common.Capacity" + description: "The association of the FC to LTPs is made via EndPoints.\r\n \ + \ The EndPoint (EP) object class models the access to the FC function.\ + \ \r\n The traffic forwarding between the associated EPs of the\ + \ FC depends upon the type of FC and may be associated with FcSwitch object\ + \ instances. \r\n In cases where there is resilience the EndPoint\ + \ may convey the resilience role of the access to the FC. \r\n \ + \ It can represent a protected (resilient/reliable) point or a protecting\ + \ (unreliable working or protection) point.\r\n The EP replaces\ + \ the Protection Unit of a traditional protection model. \r\n The\ + \ ForwadingConstruct can be considered as a component and the EndPoint as\ + \ a Port on that component" + tapi.connectivity.ConnectivityServiceEndPointRef: + allOf: + - $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRef" + - type: "object" + properties: + connectivity-service-end-point-local-id: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id" + description: "none" + tapi.connectivity.ConnectivityServiceEndPointRefWrapper: + properties: + peer-fwd-connectivity-service-end-point: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPointRef" + tapi.connectivity.ConnectivityServiceEndPointWrapper: + properties: + end-point: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPoint" + tapi.connectivity.ConnectivityServiceRef: + type: "object" + properties: + connectivity-service-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid" + tapi.connectivity.ConnectivityServiceRefWrapper: + properties: + coroute-inclusion: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceRef" + tapi.connectivity.ConnectivityServiceWrapper: + properties: + connectivity-service: + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + tapi.connectivity.ContextAugmentation3: + type: "object" + properties: + connectivity-context: + description: "Augments the base TAPI Context with ConnectivityService information" + $ref: "#/definitions/tapi.connectivity.ConnectivityContext" + x-augmentation: + prefix: "tapi-connectivity" + namespace: "urn:onf:otcc:yang:tapi-connectivity" + tapi.connectivity.CoordinateType: + type: "string" + enum: + - "NO_COORDINATE" + - "HOLD_OFF_TIME" + - "WAIT_FOR_NOTIFICATION" + tapi.connectivity.CreateConnectivityService: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.createconnectivityservice.Output" + tapi.connectivity.GetConnectionDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.getconnectiondetails.Output" + tapi.connectivity.GetConnectionEndPointDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.getconnectionendpointdetails.Output" + tapi.connectivity.GetConnectivityServiceDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.getconnectivityservicedetails.Output" + tapi.connectivity.GetConnectivityServiceList: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.getconnectivityservicelist.Output" + tapi.connectivity.OwnedNodeEdgePointAugmentation1: + type: "object" + properties: + cep-list: + description: "none" + $ref: "#/definitions/tapi.connectivity.CepList" + x-augmentation: + prefix: "tapi-connectivity" + namespace: "urn:onf:otcc:yang:tapi-connectivity" + tapi.connectivity.ProtectionRole: + type: "string" + enum: + - "WORK" + - "PROTECT" + - "PROTECTED" + - "NA" + - "WORK_RESTORE" + - "PROTECT_RESTORE" + tapi.connectivity.ResilienceConstraint: + type: "object" + properties: + is-lock-out: + type: "boolean" + description: "The resource is configured to temporarily not be available for\ + \ use in the protection scheme(s) it is part of.\r\n This\ + \ overrides all other protection control states including forced.\r\n \ + \ If the item is locked out then it cannot be used under any\ + \ circumstances.\r\n Note: Only relevant when part of a protection\ + \ scheme." + default: false + max-switch-times: + type: "integer" + format: "int32" + description: "Used to limit the maximum swtich times. When work fault disappears\ + \ , and traffic return to the original work path, switch counter reset." + restoration-coordinate-type: + description: " The coordination mechanism between multi-layers." + $ref: "#/definitions/tapi.connectivity.CoordinateType" + is-coordinated-switching-both-ends: + type: "boolean" + description: "Is operating such that switching at both ends of each flow acorss\ + \ the FC is coordinated at both ingress and egress ends." + default: false + hold-off-time: + type: "integer" + format: "int32" + description: "This attribute indicates the time, in milliseconds, between\ + \ declaration of signal degrade or signal fail, and the initialization of\ + \ the protection switching algorithm." + is-frozen: + type: "boolean" + description: "Temporarily prevents any switch action to be taken and, as such,\ + \ freezes the current state. \r\n Until the freeze is cleared,\ + \ additional near-end external commands are rejected and fault condition\ + \ changes and received APS messages are ignored.\r\n All\ + \ administrative controls of any aspect of protection are rejected." + default: false + wait-to-revert-time: + type: "integer" + format: "int32" + description: "If the protection system is revertive, this attribute specifies\ + \ the time, in minutes, to wait after a fault clears on a higher priority\ + \ (preferred) resource before reverting to the preferred resource." + default: 15 + resilience-type: + description: "none" + $ref: "#/definitions/tapi.topology.ResilienceType" + preferred-restoration-layer: + type: "array" + description: "Indicate which layer this resilience parameters package configured\ + \ for." + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + restore-priority: + type: "integer" + format: "int32" + description: "none" + reversion-mode: + description: "Indcates whether the protection scheme is revertive or non-revertive." + $ref: "#/definitions/tapi.connectivity.ReversionMode" + tapi.connectivity.ResilienceRoute: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + priority: + type: "integer" + format: "int32" + description: "Value of 0 (zero) means 'unspecified priority'.\r\n \ + \ Highest priority is 1, sometimes referred as 'preferred' or\ + \ 'main' or 'intended' route.\r\n 2 has lower priority\ + \ than 1, 3 has lower priority than 2, etc." + route-state: + type: "string" + description: "Current information on the route selection." + description: "This object adds resilience and state attributes to the Route.\r\ + \n When this object is not present, then the Route is intendend\ + \ as 'current' Route of the Connection." + tapi.connectivity.ResilienceRouteWrapper: + properties: + resilience-route-pac: + $ref: "#/definitions/tapi.connectivity.ResilienceRoute" + tapi.connectivity.ReversionMode: + type: "string" + enum: + - "REVERTIVE" + - "NON-REVERTIVE" + tapi.connectivity.Route: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + resilience-route-pac: + description: "Provides optional resilience and state attributes to the Route." + $ref: "#/definitions/tapi.connectivity.ResilienceRoute" + description: "The Route of a Connection is modeled as a collection of Connection\ + \ End Points.\r\n The logical order of the Connection End Points\ + \ within the Route object can be inferred by the TAPI client by the knowledge\ + \ of the Topology information." + tapi.connectivity.RouteRef: + allOf: + - $ref: "#/definitions/tapi.connectivity.ConnectionRef" + - type: "object" + properties: + route-local-id: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id" + description: "none" + tapi.connectivity.RouteRefWrapper: + properties: + selected-route: + $ref: "#/definitions/tapi.connectivity.RouteRef" + tapi.connectivity.RouteWrapper: + properties: + route: + $ref: "#/definitions/tapi.connectivity.Route" + tapi.connectivity.SelectionControl: + type: "string" + enum: + - "LOCK_OUT" + - "NORMAL" + - "MANUAL" + - "FORCED" + tapi.connectivity.SelectionReason: + type: "string" + enum: + - "LOCKOUT" + - "NORMAL" + - "MANUAL" + - "FORCED" + - "WAIT_TO_REVERT" + - "SIGNAL_DEGRADE" + - "SIGNAL_FAIL" + tapi.connectivity.ServiceType: + type: "string" + enum: + - "POINT_TO_POINT_CONNECTIVITY" + - "POINT_TO_MULTIPOINT_CONNECTIVITY" + - "MULTIPOINT_CONNECTIVITY" + - "ROOTED_MULTIPOINT_CONNECTIVITY" + tapi.connectivity.Switch: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + selected-connection-end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectionEndPointRef" + selected-route: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.RouteRef" + selection-control: + description: "Degree of administrative control applied to the switch selection." + $ref: "#/definitions/tapi.connectivity.SelectionControl" + selection-reason: + description: "The reason for the current switch selection." + $ref: "#/definitions/tapi.connectivity.SelectionReason" + switch-direction: + description: "Indicates whether the switch selects from ingress to the FC\ + \ or to egress of the FC, or both." + $ref: "#/definitions/tapi.common.PortDirection" + description: "The class models the switched forwarding of traffic (traffic flow)\ + \ between FcPorts (ConnectionEndPoints) and is present where there is protection\ + \ functionality in the FC (Connection). \r\n If an FC exposes protection\ + \ (having two or more FcPorts that provide alternative identical inputs/outputs),\ + \ the FC will have one or more associated FcSwitch objects to represent the\ + \ alternative flow choices visible at the edge of the FC.\r\n The\ + \ FC switch represents and defines a protection switch structure encapsulated\ + \ in the FC. \r\n Essentially performs one of the functions of\ + \ the Protection Group in a traditional model. It associates to 2 or more\ + \ FcPorts each playing the role of a Protection Unit. \r\n One\ + \ or more protection, i.e. standby/backup, FcPorts provide protection for\ + \ one or more working (i.e. regular/main/preferred) FcPorts where either protection\ + \ or working can feed one or more protected FcPort.\r\n The switch\ + \ may be used in revertive or non-revertive (symmetric) mode. When in revertive\ + \ mode it may define a waitToRestore time.\r\n It may be used in\ + \ one of several modes including source switch, destination switched, source\ + \ and destination switched etc (covering cases such as 1+1 and 1:1).\r\n \ + \ It may be locked out (prevented from switching), force switched\ + \ or manual switched.\r\n It will indicate switch state and change\ + \ of state.\r\n The switch can be switched away from all sources\ + \ such that it becomes open and hence two coordinated switches can both feed\ + \ the same LTP so long as at least one of the two is switched away from all\ + \ sources (is 'open').\r\n The ability for a Switch to be 'high\ + \ impedance' allows bidirectional ForwardingConstructs to be overlaid on the\ + \ same bidirectional LTP where the appropriate control is enabled to prevent\ + \ signal conflict.\r\n This ability allows multiple alternate routes\ + \ to be present that otherwise would be in conflict." + tapi.connectivity.SwitchControl: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.connectivity.ResilienceConstraint" + - type: "object" + properties: + sub-switch-control: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.SwitchControlRef" + switch: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.Switch" + description: "Represents the capability to control and coordinate switches,\ + \ to add/delete/modify FCs and to add/delete/modify LTPs/LPs so as to realize\ + \ a protection scheme." + tapi.connectivity.SwitchControlRef: + allOf: + - $ref: "#/definitions/tapi.connectivity.ConnectionRef" + - type: "object" + properties: + switch-control-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-connectivity:connectivity-context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid" + description: "none" + tapi.connectivity.SwitchControlRefWrapper: + properties: + sub-switch-control: + $ref: "#/definitions/tapi.connectivity.SwitchControlRef" + tapi.connectivity.SwitchControlWrapper: + properties: + switch-control: + $ref: "#/definitions/tapi.connectivity.SwitchControl" + tapi.connectivity.SwitchWrapper: + properties: + switch: + $ref: "#/definitions/tapi.connectivity.Switch" + tapi.connectivity.UpdateConnectivityService: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.connectivity.updateconnectivityservice.Output" + tapi.connectivity.createconnectivityservice.Input: + type: "object" + properties: + topology-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPoint" + resilience-constraint: + description: "none" + $ref: "#/definitions/tapi.connectivity.ResilienceConstraint" + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + state: + type: "string" + description: "none" + connectivity-constraint: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityConstraint" + tapi.connectivity.createconnectivityservice.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + tapi.connectivity.deleteconnectivityservice.Input: + type: "object" + properties: + service-id-or-name: + type: "string" + description: "none" + tapi.connectivity.getconnectiondetails.Input: + type: "object" + properties: + connection-id-or-name: + type: "string" + description: "none" + tapi.connectivity.getconnectiondetails.Output: + type: "object" + properties: + connection: + description: "none" + $ref: "#/definitions/tapi.connectivity.Connection" + tapi.connectivity.getconnectionendpointdetails.Input: + type: "object" + properties: + cep-id-or-name: + type: "string" + description: "none" + nep-id-or-name: + type: "string" + description: "none" + node-id-or-name: + type: "string" + description: "none" + topology-id-or-name: + type: "string" + description: "none" + tapi.connectivity.getconnectionendpointdetails.Output: + type: "object" + properties: + connection-end-point: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectionEndPoint" + tapi.connectivity.getconnectivityservicedetails.Input: + type: "object" + properties: + service-id-or-name: + type: "string" + description: "none" + tapi.connectivity.getconnectivityservicedetails.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + tapi.connectivity.getconnectivityservicelist.Output: + type: "object" + properties: + service: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + tapi.connectivity.updateconnectivityservice.Input: + type: "object" + properties: + service-id-or-name: + type: "string" + description: "none" + topology-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.connectivity.ConnectivityServiceEndPoint" + resilience-constraint: + description: "none" + $ref: "#/definitions/tapi.connectivity.ResilienceConstraint" + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + state: + type: "string" + description: "none" + connectivity-constraint: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityConstraint" + tapi.connectivity.updateconnectivityservice.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.connectivity.ConnectivityService" + tapi.notification.AlarmInfo: + type: "object" + properties: + perceived-severity: + description: "none" + $ref: "#/definitions/tapi.notification.PerceivedSeverityType" + probable-cause: + type: "string" + description: "none" + service-affecting: + description: "none" + $ref: "#/definitions/tapi.notification.ServiceAffecting" + is-transient: + type: "boolean" + description: "none" + default: false + tapi.notification.AlarmInfoWrapper: + properties: + alarm-info: + $ref: "#/definitions/tapi.notification.AlarmInfo" + tapi.notification.ContextAugmentation1: + type: "object" + properties: + notification-context: + description: "Augments the base TAPI Context with NotificationService information" + $ref: "#/definitions/tapi.notification.NotificationContext" + x-augmentation: + prefix: "tapi-notification" + namespace: "urn:onf:otcc:yang:tapi-notification" + tapi.notification.CreateNotificationSubscriptionService: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.createnotificationsubscriptionservice.Output" + tapi.notification.DeleteNotificationSubscriptionService: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.deletenotificationsubscriptionservice.Output" + tapi.notification.GetNotificationList: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.getnotificationlist.Output" + tapi.notification.GetNotificationSubscriptionServiceDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.getnotificationsubscriptionservicedetails.Output" + tapi.notification.GetNotificationSubscriptionServiceList: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.getnotificationsubscriptionservicelist.Output" + tapi.notification.GetSupportedNotificationTypes: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.getsupportednotificationtypes.Output" + tapi.notification.NameAndValueChange: + type: "object" + properties: + value-name: + type: "string" + description: "The name of the value. The value need not have a name." + old-value: + type: "string" + description: "The value" + new-value: + type: "string" + description: "The value" + tapi.notification.NameAndValueChangeWrapper: + properties: + changed-attributes: + $ref: "#/definitions/tapi.notification.NameAndValueChange" + tapi.notification.Notification: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + target-object-type: + description: "none" + $ref: "#/definitions/tapi.notification.ObjectType" + additional-text: + type: "string" + description: "none" + event-time-stamp: + type: "string" + description: "none" + additional-info: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.NameAndValue" + sequence-number: + type: "integer" + format: "int32" + description: "A monotonous increasing sequence number associated with the\ + \ notification.\r\n The exact semantics of how this sequence\ + \ number is assigned (per channel or subscription or source or system)\ + \ is left undefined." + tca-info: + description: "none" + $ref: "#/definitions/tapi.notification.TcaInfo" + target-object-identifier: + type: "string" + description: "none" + notification-type: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationType" + target-object-name: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.NameAndValue" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + source-indicator: + description: "none" + $ref: "#/definitions/tapi.notification.SourceIndicator" + alarm-info: + description: "none" + $ref: "#/definitions/tapi.notification.AlarmInfo" + changed-attributes: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NameAndValueChange" + description: "none" + tapi.notification.NotificationChannel: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + next-sequence-no: + type: "integer" + format: "int32" + description: "The sequence number of the next notification that will be\ + \ published on the channel" + stream-address: + type: "string" + description: "The address/location/URI of the channel/stream to which the\ + \ subscribed notifications are published.\r\n This specifics\ + \ of this is typically dependent on the implementation protocol & mechanism\ + \ and hence is typed as a string." + description: "none" + tapi.notification.NotificationChannelWrapper: + properties: + notification-channel: + $ref: "#/definitions/tapi.notification.NotificationChannel" + tapi.notification.NotificationContext: + type: "object" + properties: + notif-subscription: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + notification: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.Notification" + tapi.notification.NotificationContextWrapper: + properties: + tapi-notification:notification-context: + $ref: "#/definitions/tapi.notification.NotificationContext" + tapi.notification.NotificationSubscriptionService: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + notification: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.Notification" + notification-channel: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationChannel" + subscription-state: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionState" + supported-object-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.ObjectType" + supported-notification-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NotificationType" + subscription-filter: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionFilter" + description: "none" + tapi.notification.NotificationSubscriptionServiceWrapper: + properties: + notif-subscription: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.notification.NotificationType: + type: "string" + enum: + - "OBJECT_CREATION" + - "OBJECT_DELETION" + - "ATTRIBUTE_VALUE_CHANGE" + - "ALARM_EVENT" + - "THRESHOLD_CROSSING_ALERT" + tapi.notification.NotificationWrapper: + properties: + notification: + $ref: "#/definitions/tapi.notification.Notification" + tapi.notification.ObjectType: + type: "string" + enum: + - "TOPOLOGY" + - "NODE" + - "LINK" + - "CONNECTION" + - "PATH" + - "CONNECTIVITY_SERVICE" + - "VIRTUAL_NETWORK_SERVICE" + - "PATH_COMPUTATION_SERVICE" + - "NODE_EDGE_POINT" + - "SERVICE_INTERFACE_POINT" + - "CONNECTION_END_POINT" + - "MAINTENANCE_ENTITY_GROUP" + - "MAINTENANCE_ENTITY" + - "MEG_END_POINT" + - "MEG_INTERMEDIATE_POINT" + - "SWITCH_CONTROL" + - "SWITCH" + - "ROUTE" + - "NODE_RULE_GROUP" + - "INTER_RULE_GROUP" + - "RULE" + - "OAM_JOB" + - "ACCESS_PORT" + - "EQUIPMENT" + - "HOLDER" + - "PHYSICAL_SPAN" + - "ABSTRACT_STRAND" + - "DEVICE" + tapi.notification.PerceivedSeverityType: + type: "string" + enum: + - "CRITICAL" + - "MAJOR" + - "MINOR" + - "WARNING" + - "CLEARED" + tapi.notification.PerceivedTcaSeverity: + type: "string" + enum: + - "WARNING" + - "CLEAR" + tapi.notification.ServiceAffecting: + type: "string" + enum: + - "SERVICE_AFFECTING" + - "NOT_SERVICE_AFFECTING" + - "UNKNOWN" + tapi.notification.SourceIndicator: + type: "string" + enum: + - "RESOURCE_OPERATION" + - "MANAGEMENT_OPERATION" + - "UNKNOWN" + tapi.notification.SubscriptionFilter: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + requested-notification-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NotificationType" + requested-object-identifier: + type: "array" + description: "none" + items: + type: "string" + requested-layer-protocols: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + include-content: + type: "boolean" + description: "Indicates whether the published Notification includes content\ + \ or just the Notification Id (which enables retrieval of the notification\ + \ at the later stage)" + default: false + requested-object-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.ObjectType" + description: "none" + tapi.notification.SubscriptionFilterWrapper: + properties: + subscription-filter: + $ref: "#/definitions/tapi.notification.SubscriptionFilter" + tapi.notification.SubscriptionState: + type: "string" + enum: + - "SUSPENDED" + - "ACTIVE" + tapi.notification.TcaInfo: + type: "object" + properties: + threshold-crossing: + description: "none" + $ref: "#/definitions/tapi.notification.ThresholdCrossingType" + threshold-parameter: + type: "string" + description: "none" + is-transient: + type: "boolean" + description: "none" + default: false + threshold-value: + type: "integer" + format: "int32" + description: "none" + perceived-severity: + description: "none" + $ref: "#/definitions/tapi.notification.PerceivedTcaSeverity" + suspect-interval-flag: + type: "boolean" + description: "none" + default: false + measurement-interval: + type: "string" + description: "none" + tapi.notification.TcaInfoWrapper: + properties: + tca-info: + $ref: "#/definitions/tapi.notification.TcaInfo" + tapi.notification.ThresholdCrossingType: + type: "string" + enum: + - "THRESHOLD_ABOVE" + - "THRESHOLD_BELOW" + - "CLEARED" + tapi.notification.UpdateNotificationSubscriptionService: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.notification.updatenotificationsubscriptionservice.Output" + tapi.notification.createnotificationsubscriptionservice.Input: + type: "object" + properties: + subscription-state: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionState" + subscription-filter: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionFilter" + tapi.notification.createnotificationsubscriptionservice.Output: + type: "object" + properties: + subscription-service: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.notification.deletenotificationsubscriptionservice.Input: + type: "object" + properties: + subscription-id-or-name: + type: "string" + description: "none" + tapi.notification.deletenotificationsubscriptionservice.Output: + type: "object" + properties: + subscription-service: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.notification.getnotificationlist.Input: + type: "object" + properties: + time-period: + type: "string" + description: "none" + subscription-id-or-name: + type: "string" + description: "none" + tapi.notification.getnotificationlist.Output: + type: "object" + properties: + notification: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.Notification" + tapi.notification.getnotificationsubscriptionservicedetails.Input: + type: "object" + properties: + subscription-id-or-name: + type: "string" + description: "none" + tapi.notification.getnotificationsubscriptionservicedetails.Output: + type: "object" + properties: + subscription-service: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.notification.getnotificationsubscriptionservicelist.Output: + type: "object" + properties: + subscription-service: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.notification.getsupportednotificationtypes.Output: + type: "object" + properties: + supported-object-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.ObjectType" + supported-notification-types: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.notification.NotificationType" + tapi.notification.updatenotificationsubscriptionservice.Input: + type: "object" + properties: + subscription-state: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionState" + subscription-filter: + description: "none" + $ref: "#/definitions/tapi.notification.SubscriptionFilter" + subscription-id-or-name: + type: "string" + description: "none" + tapi.notification.updatenotificationsubscriptionservice.Output: + type: "object" + properties: + subscription-service: + description: "none" + $ref: "#/definitions/tapi.notification.NotificationSubscriptionService" + tapi.path.computation.ComputeP2PPath: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.path.computation.computep2ppath.Output" + tapi.path.computation.ContextAugmentation2: + type: "object" + properties: + path-computation-context: + description: "Augments the base TAPI Context with PathComputationService information" + $ref: "#/definitions/tapi.path.computation.PathComputationContext" + x-augmentation: + prefix: "tapi-path-computation" + namespace: "urn:onf:otcc:yang:tapi-path-computation" + tapi.path.computation.DeleteP2PPath: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.path.computation.deletep2ppath.Output" + tapi.path.computation.DiversityPolicy: + type: "string" + enum: + - "SRLG" + - "SRNG" + - "SNG" + - "NODE" + - "LINK" + tapi.path.computation.OptimizeP2Ppath: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.path.computation.optimizep2ppath.Output" + tapi.path.computation.Path: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + link: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.LinkRef" + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + direction: + description: "none" + $ref: "#/definitions/tapi.common.ForwardingDirection" + description: "Path is described by an ordered list of TE Links. A TE Link is\ + \ defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by\ + \ concatenating link resources (associated with a Link) and the lower-level\ + \ connections (cross-connections) in the different nodes" + tapi.path.computation.PathComputationContext: + type: "object" + properties: + path-comp-service: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.path.computation.PathComputationService" + path: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.path.computation.Path" + tapi.path.computation.PathComputationContextWrapper: + properties: + tapi-path-computation:path-computation-context: + $ref: "#/definitions/tapi.path.computation.PathComputationContext" + tapi.path.computation.PathComputationService: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + topology-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + path: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.path.computation.PathRef" + objective-function: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunction" + end-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPoint" + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + optimization-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraint" + description: "none" + tapi.path.computation.PathComputationServiceWrapper: + properties: + path-comp-service: + $ref: "#/definitions/tapi.path.computation.PathComputationService" + tapi.path.computation.PathObjectiveFunction: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + link-utilization: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + bandwidth-optimization: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + cost-optimization: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + resource-sharing: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + concurrent-paths: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + description: "none" + tapi.path.computation.PathObjectiveFunctionWrapper: + properties: + objective-function: + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunction" + tapi.path.computation.PathOptimizationConstraint: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + traffic-interruption: + description: "none" + $ref: "#/definitions/tapi.common.DirectiveValue" + description: "none" + tapi.path.computation.PathOptimizationConstraintWrapper: + properties: + optimization-constraint: + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraint" + tapi.path.computation.PathRef: + type: "object" + properties: + path-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-path-computation:path-computation-context/tapi-path-computation:path/tapi-path-computation:uuid" + tapi.path.computation.PathRefWrapper: + properties: + path: + $ref: "#/definitions/tapi.path.computation.PathRef" + tapi.path.computation.PathServiceEndPoint: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + role: + description: "Each EP of the FC has a role (e.g., working, protection, protected,\ + \ symmetric, hub, spoke, leaf, root) in the context of the FC with respect\ + \ to the FC function. " + $ref: "#/definitions/tapi.common.PortRole" + service-interface-point: + description: "none" + $ref: "#/definitions/tapi.common.ServiceInterfacePointRef" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + layer-protocol-qualifier: + type: "string" + description: "none" + direction: + description: "The orientation of defined flow at the EndPoint." + $ref: "#/definitions/tapi.common.PortDirection" + capacity: + description: "none" + $ref: "#/definitions/tapi.common.Capacity" + description: "The association of the FC to LTPs is made via EndPoints.\r\n \ + \ The EndPoint (EP) object class models the access to the FC function.\ + \ \r\n The traffic forwarding between the associated EPs of the\ + \ FC depends upon the type of FC and may be associated with FcSwitch object\ + \ instances. \r\n In cases where there is resilience the EndPoint\ + \ may convey the resilience role of the access to the FC. \r\n \ + \ It can represent a protected (resilient/reliable) point or a protecting\ + \ (unreliable working or protection) point.\r\n The EP replaces\ + \ the Protection Unit of a traditional protection model. \r\n The\ + \ ForwadingConstruct can be considered as a component and the EndPoint as\ + \ a Port on that component" + tapi.path.computation.PathServiceEndPointWrapper: + properties: + end-point: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPoint" + tapi.path.computation.PathWrapper: + properties: + path: + $ref: "#/definitions/tapi.path.computation.Path" + tapi.path.computation.RouteObjectiveFunction: + type: "string" + enum: + - "MIN_WORK_ROUTE_HOP" + - "MIN_WORK_ROUTE_COST" + - "MIN_WORK_ROUTE_LATENCY" + - "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP" + - "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST" + - "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY" + - "LOAD_BALANCE_MAX_UNUSED_CAPACITY" + tapi.path.computation.RoutingConstraint: + type: "object" + properties: + is-exclusive: + type: "boolean" + description: "To distinguish if the resources are to be exclusive to the service" + default: true + max-allowed-cost: + description: "none" + $ref: "#/definitions/tapi.path.computation.ValueOrPriority" + diversity-policy: + description: "none" + $ref: "#/definitions/tapi.path.computation.DiversityPolicy" + route-objective-function: + description: "none" + $ref: "#/definitions/tapi.path.computation.RouteObjectiveFunction" + cost-characteristic: + type: "array" + description: "The list of costs where each cost relates to some aspect of\ + \ the TopologicalEntity." + items: + $ref: "#/definitions/tapi.topology.CostCharacteristic" + max-allowed-hops: + description: "none" + $ref: "#/definitions/tapi.path.computation.ValueOrPriority" + max-allowed-delay: + description: "Delay unit is microseconds." + $ref: "#/definitions/tapi.path.computation.ValueOrPriority" + latency-characteristic: + type: "array" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + items: + $ref: "#/definitions/tapi.topology.LatencyCharacteristic" + risk-diversity-characteristic: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.RiskCharacteristic" + route-direction: + description: "none" + $ref: "#/definitions/tapi.common.ForwardingDirection" + tapi.path.computation.RoutingConstraintWrapper: + properties: + routing-constraint: + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + tapi.path.computation.TopologyConstraint: + type: "object" + properties: + include-node: + type: "array" + description: "This is a loose constraint - that is it is unordered and could\ + \ be a partial list" + items: + type: "string" + exclude-link: + type: "array" + description: "none" + items: + type: "string" + avoid-topology: + type: "array" + description: "none" + items: + type: "string" + exclude-path: + type: "array" + description: "none" + items: + type: "string" + include-link: + type: "array" + description: "This is a loose constraint - that is it is unordered and could\ + \ be a partial list " + items: + type: "string" + preferred-transport-layer: + type: "array" + description: "soft constraint requested by client to indicate the layer(s)\ + \ of transport connection that it prefers to carry the service. This could\ + \ be same as the service layer or one of the supported server layers" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + exclude-node: + type: "array" + description: "none" + items: + type: "string" + include-topology: + type: "array" + description: "none" + items: + type: "string" + include-path: + type: "array" + description: "none" + items: + type: "string" + tapi.path.computation.TopologyConstraintWrapper: + properties: + topology-constraint: + $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + tapi.path.computation.ValueOrPriority: + type: "object" + properties: + priority: + type: "integer" + format: "int32" + description: "none" + value: + type: "integer" + format: "int32" + description: "none" + tapi.path.computation.ValueOrPriorityWrapper: + properties: + max-allowed-cost: + $ref: "#/definitions/tapi.path.computation.ValueOrPriority" + tapi.path.computation.computep2ppath.Input: + type: "object" + properties: + topology-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.TopologyConstraint" + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + objective-function: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunction" + sep: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.path.computation.PathServiceEndPoint" + tapi.path.computation.computep2ppath.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathComputationService" + tapi.path.computation.deletep2ppath.Input: + type: "object" + properties: + path-id-or-name: + type: "string" + description: "none" + tapi.path.computation.deletep2ppath.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathComputationService" + tapi.path.computation.optimizep2ppath.Input: + type: "object" + properties: + routing-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.RoutingConstraint" + path-id-or-name: + type: "string" + description: "none" + optimization-constraint: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathOptimizationConstraint" + objective-function: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathObjectiveFunction" + tapi.path.computation.optimizep2ppath.Output: + type: "object" + properties: + service: + description: "none" + $ref: "#/definitions/tapi.path.computation.PathComputationService" + tapi.topology.ConnectionSpecReference: + type: "object" + properties: + connection-spec-name: + type: "string" + description: "The name of the connection type spec.\r\n This\ + \ can be used as a reference to a paper document where full formal machine\ + \ interpretable specs are not supported." + connection-spec-id: + type: "string" + description: "The reference to a formal spec. \r\n This reference\ + \ need not be provided (e.g., where there is no formal machine interpretable\ + \ spec for the type of connection)." + tapi.topology.ConnectionSpecReferenceWrapper: + properties: + connection-spec-reference: + $ref: "#/definitions/tapi.topology.ConnectionSpecReference" + tapi.topology.ContextAugmentation4: + type: "object" + properties: + topology-context: + description: "Augments the base TAPI Context with TopologyService information" + $ref: "#/definitions/tapi.topology.TopologyContext" + x-augmentation: + prefix: "tapi-topology" + namespace: "urn:onf:otcc:yang:tapi-topology" + tapi.topology.CostCharacteristic: + type: "object" + properties: + cost-value: + type: "string" + description: "The specific cost." + cost-algorithm: + type: "string" + description: "The cost may vary based upon some properties of the TopologicalEntity.\ + \ The rules for the variation are conveyed by the costAlgorithm." + cost-name: + type: "string" + description: "The cost characteristic will related to some aspect of the TopologicalEntity\ + \ (e.g. $ cost, routing weight). This aspect will be conveyed by the costName." + tapi.topology.CostCharacteristicWrapper: + properties: + cost-characteristic: + $ref: "#/definitions/tapi.topology.CostCharacteristic" + tapi.topology.ForwardingRule: + type: "string" + enum: + - "MAY_FORWARD_ACROSS_GROUP" + - "MUST_FORWARD_ACROSS_GROUP" + - "CANNOT_FORWARD_ACROSS_GROUP" + - "NO_STATEMENT_ON_FORWARDING" + - "INTER_CONNECTION_CONTENTION" + tapi.topology.GetLinkDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.topology.getlinkdetails.Output" + tapi.topology.GetNodeDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.topology.getnodedetails.Output" + tapi.topology.GetNodeEdgePointDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.topology.getnodeedgepointdetails.Output" + tapi.topology.GetTopologyDetails: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.topology.gettopologydetails.Output" + tapi.topology.GetTopologyList: + type: "object" + properties: + output: + $ref: "#/definitions/tapi.topology.gettopologylist.Output" + tapi.topology.InterRuleGroup: + allOf: + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.topology.RiskParameterPac" + - $ref: "#/definitions/tapi.topology.TransferCostPac" + - $ref: "#/definitions/tapi.topology.TransferTimingPac" + - type: "object" + properties: + associated-node-rule-group: + type: "array" + description: "The NodeRuleGroups that the InterRuleGroup constrains interconnection\ + \ between.\r\n The CEPs of the NEPs of a referenced NodeRuleGroup\ + \ can interconnect to the CEPs of the NEPs of another referenced NodeRuleGroup\ + \ constrained by the rules of the InterRuleGroup." + items: + $ref: "#/definitions/tapi.topology.NodeRuleGroupRef" + rule: + type: "array" + description: "The list of rules of the InterRuleGroup." + items: + $ref: "#/definitions/tapi.topology.Rule" + description: "Rules that apply between groups of NEPs." + tapi.topology.InterRuleGroupWrapper: + properties: + inter-rule-group: + $ref: "#/definitions/tapi.topology.InterRuleGroup" + tapi.topology.LatencyCharacteristic: + type: "object" + properties: + traffic-property-name: + type: "string" + description: "The identifier of the specific traffic property to which the\ + \ queuing latency applies." + jitter-characteristic: + type: "string" + description: "High frequency deviation from true periodicity of a signal and\ + \ therefore a small high rate of change of transfer latency.\r\n \ + \ Applies to TDM systems (and not packet)." + fixed-latency-characteristic: + type: "string" + description: "A TopologicalEntity suffers delay caused by the realization\ + \ of the servers (e.g. distance related; FEC encoding etc.) along with some\ + \ client specific processing. This is the total average latency effect of\ + \ the TopologicalEntity" + wander-characteristic: + type: "string" + description: "Low frequency deviation from true periodicity of a signal and\ + \ therefore a small low rate of change of transfer latency.\r\n \ + \ Applies to TDM systems (and not packet)." + queing-latency-characteristic: + type: "string" + description: "The specific queuing latency for the traffic property." + tapi.topology.LatencyCharacteristicWrapper: + properties: + latency-characteristic: + $ref: "#/definitions/tapi.topology.LatencyCharacteristic" + tapi.topology.LayerProtocolTransitionPac: + type: "object" + properties: + transitioned-layer-protocol-name: + type: "array" + description: "Provides the ordered structure of layer protocol transitions\ + \ encapsulated in the TopologicalEntity. The ordering relates to the LinkPort\ + \ role." + items: + type: "string" + tapi.topology.Link: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.topology.LayerProtocolTransitionPac" + - $ref: "#/definitions/tapi.topology.RiskParameterPac" + - $ref: "#/definitions/tapi.topology.TransferCostPac" + - $ref: "#/definitions/tapi.topology.TransferIntegrityPac" + - $ref: "#/definitions/tapi.topology.TransferTimingPac" + - $ref: "#/definitions/tapi.topology.ValidationPac" + - type: "object" + properties: + layer-protocol-name: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + resilience-type: + description: "none" + $ref: "#/definitions/tapi.topology.ResilienceType" + node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + direction: + description: "The directionality of the Link.\r\n Is applicable\ + \ to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will\ + \ be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).\r\ + \n Is not present in more complex cases." + $ref: "#/definitions/tapi.common.ForwardingDirection" + description: "The Link object class models effective adjacency between two or\ + \ more ForwardingDomains (FD). " + tapi.topology.LinkRef: + allOf: + - $ref: "#/definitions/tapi.topology.TopologyRef" + - type: "object" + properties: + link-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid" + description: "none" + tapi.topology.LinkRefWrapper: + properties: + supported-client-link: + $ref: "#/definitions/tapi.topology.LinkRef" + tapi.topology.LinkWrapper: + properties: + link: + $ref: "#/definitions/tapi.topology.Link" + tapi.topology.NetworkTopologyService: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + topology: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.TopologyRef" + description: "none" + tapi.topology.NetworkTopologyServiceWrapper: + properties: + nw-topology-service: + $ref: "#/definitions/tapi.topology.NetworkTopologyService" + tapi.topology.Node: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.topology.TransferCostPac" + - $ref: "#/definitions/tapi.topology.TransferIntegrityPac" + - $ref: "#/definitions/tapi.topology.TransferTimingPac" + - type: "object" + properties: + layer-protocol-name: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + encap-topology: + description: "none" + $ref: "#/definitions/tapi.topology.TopologyRef" + owned-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePoint" + node-rule-group: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeRuleGroup" + aggregated-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + description: "The ForwardingDomain (FD) object class models the ForwardingDomain\ + \ topological component which is used to effect forwarding of transport characteristic\ + \ information and offers the potential to enable forwarding.\r\n \ + \ At the lowest level of recursion, an FD (within a network element (NE))\ + \ represents a switch matrix (i.e., a fabric). Note that an NE can encompass\ + \ multiple switch matrices (FDs). " + tapi.topology.NodeEdgePoint: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.common.TerminationPac" + - type: "object" + properties: + link-port-role: + description: "Each LinkEnd of the Link has a role (e.g., symmetric, hub,\ + \ spoke, leaf, root) in the context of the Link with respect to the Link\ + \ function. " + $ref: "#/definitions/tapi.common.PortRole" + mapped-service-interface-point: + type: "array" + description: "NodeEdgePoint mapped to more than ServiceInterfacePoint (slicing/virtualizing)\ + \ or a ServiceInterfacePoint mapped to more than one NodeEdgePoint (load\ + \ balancing/Resilience) should be considered experimental" + items: + $ref: "#/definitions/tapi.common.ServiceInterfacePointRef" + aggregated-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + layer-protocol-name: + description: "none" + $ref: "#/definitions/tapi.common.LayerProtocolName" + link-port-direction: + description: "The orientation of defined flow at the LinkEnd." + $ref: "#/definitions/tapi.common.PortDirection" + supported-cep-layer-protocol-qualifier: + type: "array" + description: "none" + items: + type: "string" + description: "The LogicalTerminationPoint (LTP) object class encapsulates the\ + \ termination and adaptation functions of one or more transport layers.\r\n\ + \ The structure of LTP supports all transport protocols including\ + \ circuit and packet forms." + tapi.topology.NodeEdgePointRef: + allOf: + - $ref: "#/definitions/tapi.topology.NodeRef" + - type: "object" + properties: + node-edge-point-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid" + description: "none" + tapi.topology.NodeEdgePointRefWrapper: + properties: + node-edge-point: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + tapi.topology.NodeRef: + allOf: + - $ref: "#/definitions/tapi.topology.TopologyRef" + - type: "object" + properties: + node-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid" + description: "none" + tapi.topology.NodeRuleGroup: + allOf: + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.topology.RiskParameterPac" + - $ref: "#/definitions/tapi.topology.TransferCostPac" + - $ref: "#/definitions/tapi.topology.TransferTimingPac" + - type: "object" + properties: + inter-rule-group: + type: "array" + description: "Nested NodeRuleGroups may have InterRuleGroups. The Superior\ + \ NodeRuleGroup contains the nested NodeRuleGroups and their associated\ + \ InterRuleGroups.\r\n This is equivalent to the Node-Topology\ + \ hierarchy." + items: + $ref: "#/definitions/tapi.topology.InterRuleGroup" + rule: + type: "array" + description: "The list of rules of the NodeRuleGroup." + items: + $ref: "#/definitions/tapi.topology.Rule" + node-rule-group: + type: "array" + description: "NodeRuleGroups may be nested such that finer grained rules\ + \ may be applied.\r\n A nested rule group should have a\ + \ subset of the NEPs of the superior rule group." + items: + $ref: "#/definitions/tapi.topology.NodeRuleGroupRef" + node-edge-point: + type: "array" + description: "NEPs and their client CEPs that the rules apply to." + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + description: "Rules that apply to a group of NEPs.\r\n " + tapi.topology.NodeRuleGroupRef: + allOf: + - $ref: "#/definitions/tapi.topology.NodeRef" + - type: "object" + properties: + node-rule-group-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid" + description: "none" + tapi.topology.NodeRuleGroupRefWrapper: + properties: + associated-node-rule-group: + $ref: "#/definitions/tapi.topology.NodeRuleGroupRef" + tapi.topology.NodeRuleGroupWrapper: + properties: + node-rule-group: + $ref: "#/definitions/tapi.topology.NodeRuleGroup" + tapi.topology.PortRoleRule: + type: "object" + properties: + port-role-rule: + type: "array" + description: "Where the rule references more than one port role or where there\ + \ are rule intersections either as a result of overlay of rules or inter\ + \ rule group usage indicates role matching criteria for a connection following\ + \ the rules.\r\n For example if two port roles, 'a' and 'b',\ + \ are listed and the port role rule is 'different', this means that a connection\ + \ connecting points in that group must have port roles that are different\ + \ for each CEP in that group.\r\n In the example if a connection\ + \ can have n ports of role 'a' and m ports of role 'b' then a maximum of\ + \ two ports can be drawn from the NEPs of the group and where there are\ + \ two, one must be role 'a' and one must be role 'b'." + items: + type: "string" + port-role: + type: "array" + description: "The role(s) of the port(s) considered in the rule." + items: + type: "string" + tapi.topology.PortRoleRuleWrapper: + properties: + cep-port-role: + $ref: "#/definitions/tapi.topology.PortRoleRule" + tapi.topology.ProtectionType: + type: "string" + enum: + - "NO_PROTECTON" + - "ONE_PLUS_ONE_PROTECTION" + - "ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION" + - "PERMANENT_ONE_PLUS_ONE_PROTECTION" + - "ONE_FOR_ONE_PROTECTION" + - "DYNAMIC_RESTORATION" + - "PRE_COMPUTED_RESTORATION" + - "ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION" + tapi.topology.ResilienceType: + type: "object" + properties: + restoration-policy: + description: "none" + $ref: "#/definitions/tapi.topology.RestorationPolicy" + protection-type: + description: "none" + $ref: "#/definitions/tapi.topology.ProtectionType" + tapi.topology.ResilienceTypeWrapper: + properties: + resilience-type: + $ref: "#/definitions/tapi.topology.ResilienceType" + tapi.topology.RestorationPolicy: + type: "string" + enum: + - "PER_DOMAIN_RESTORATION" + - "END_TO_END_RESTORATION" + - "NA" + tapi.topology.RiskCharacteristic: + type: "object" + properties: + risk-characteristic-name: + type: "string" + description: "The name of the risk characteristic. The characteristic may\ + \ be related to a specific degree of closeness.\r\n For example\ + \ a particular characteristic may apply to failures that are localized (e.g.\ + \ to one side of a road) where as another characteristic may relate to failures\ + \ that have a broader impact (e.g. both sides of a road that crosses a bridge).\r\ + \n Depending upon the importance of the traffic being routed\ + \ different risk characteristics will be evaluated." + risk-identifier-list: + type: "array" + description: "A list of the identifiers of each physical/geographic unit (with\ + \ the specific risk characteristic) that is related to a segment of the\ + \ TopologicalEntity." + items: + type: "string" + tapi.topology.RiskCharacteristicWrapper: + properties: + risk-diversity-characteristic: + $ref: "#/definitions/tapi.topology.RiskCharacteristic" + tapi.topology.RiskParameterPac: + type: "object" + properties: + risk-characteristic: + type: "array" + description: "A list of risk characteristics for consideration in an analysis\ + \ of shared risk. Each element of the list represents a specific risk consideration." + items: + $ref: "#/definitions/tapi.topology.RiskCharacteristic" + tapi.topology.Rule: + allOf: + - $ref: "#/definitions/tapi.common.LocalClass" + - type: "object" + properties: + complex-rule: + type: "array" + description: "Allows for more complex rules where the basic rule system\ + \ is not sufficient." + items: + type: "string" + rule-type: + description: "The focus of the rule." + $ref: "#/definitions/tapi.topology.RuleType" + signal-property: + description: "The rule only applies to signals with the properties listed.\ + \ \r\n If the attribute is not present then the rule applies\ + \ to all signals." + $ref: "#/definitions/tapi.topology.SignalPropertyRule" + connection-spec-reference: + type: "array" + description: "Identifies the type of connection that the rule applies to.\ + \ \r\n If the attribute is not present then the rule applies\ + \ to all types of connection supported by the device." + items: + $ref: "#/definitions/tapi.topology.ConnectionSpecReference" + cep-port-role: + type: "array" + description: "Indicates the port role to which the rule applies. \r\n \ + \ The port role is interpreted in the context of the connection\ + \ type which is identified by the connection spec. \r\n \ + \ The port role is not meaningful in the absence of a connection spec\ + \ reference.\r\n If a node rule group carries a port role,\ + \ that role applies also to the associated inter rule where the combination\ + \ of the roles in the node rule groups at the ends of the inter group\ + \ rule define the connection orientation.\r\n For example\ + \ a root-and-leaf connection may be used in a node where a node rule group\ + \ collects one set of NEPs has the port role 'root' and another node rule\ + \ group collects another set of NEPs has the port role 'leaf' where these\ + \ are joined by an inter rule group. This combination specifies an allowed\ + \ orientation of the root-and-leaf connection.\r\n No port\ + \ role statement means all port roles are allowed." + items: + $ref: "#/definitions/tapi.topology.PortRoleRule" + cep-direction: + type: "array" + description: "cep direction is a list of port directions that the rule applies\ + \ to.\r\n No entry means all cep directions." + items: + $ref: "#/definitions/tapi.common.PortDirection" + override-priority: + type: "integer" + format: "int32" + description: "The overridePriority allows for one rule in a rule group to\ + \ override another.\r\n Priority n rules override priority\ + \ n+1 rules.\r\n Rules of the same priority override as\ + \ follows (n overrides n+1):\r\n 1 - MustNot\r\n \ + \ 2 - Must\r\n 3 - May\r\n 4 -\ + \ Null\r\n Within a rule the flexibility rules (signal,\ + \ port role...) override as follows (n overriedes n+1):\r\n \ + \ 1 - Any\r\n 2 - Same\r\n 3 - Different\r\ + \n Where there are two or more 'Same' rules, they will\ + \ form an intersection where all must be met.\r\n " + layer-protocol-qualifier: + type: "array" + description: "Qualifies a rule for a particular layerProtocol identifying\ + \ the qualifiers that the rule apples to.\r\n If the attribute\ + \ is not present then the rule applies to all relevant qualifiers of the\ + \ layer protocol of the parent entity." + items: + type: "string" + forwarding-rule: + description: "Rule that restricts the creation/deletion of a Connection\ + \ between points in the node rule group or related by the inter rule group\ + \ between node rule groups." + $ref: "#/definitions/tapi.topology.ForwardingRule" + description: "Single complex rule statememt.\r\n A Node with no rule\ + \ group has no restrictions and is essentially May/Any\r\n A node\ + \ rule group constrain the CEP connectability in the Node.\r\n \ + \ A connection from a NEP must abide by all rules that relate to that NEP\r\ + \n Rules that are for a particular layerProtocolQualifier, connectionSpecReference,\ + \ cepPortRole and cepDirection combination must be abided by in combination\ + \ as dictated by overridePriority.\r\n If a particular\r\n \ + \ - connectionSpecReference does not have any rule statements then\ + \ it is not supported and connections of that type are not possible within\ + \ the rule group.\r\n - cepPortRole of a particular connectionSpecReference\ + \ does not have any rule statements then it is not supported and connections\ + \ of that connectionSpecReference (type) cannot have that cepPortRole for\ + \ CEPs from NEPs in that rule group.\r\n - cepDirection for a particular\ + \ connectionSpecReference does not have any rule statements then it is not\ + \ supported and connections of that connectionSpecReference (type) cannot\ + \ have that cepPortDirection for CEPs from NEPs in that rule group.\r\n \ + \ Rules that are for different layerProtocolQualifiers or connectionSpecReferences\ + \ are independent and provide options for connection in the rule group.\r\n\ + \ Some rules may apply to multiple connectionSpecReferences and\ + \ all cepPortRoles and all cepDirections." + tapi.topology.RuleType: + type: "string" + enum: + - "FORWARDING" + - "CAPACITY" + - "COST" + - "TIMING" + - "RISK" + - "GROUPING" + tapi.topology.RuleWrapper: + properties: + rule: + $ref: "#/definitions/tapi.topology.Rule" + tapi.topology.SignalPropertyRule: + type: "object" + properties: + number-of-signal-values: + type: "integer" + format: "int32" + description: "The number of instances of this specific property that can be\ + \ supported by the group." + applicable-signal-value: + type: "array" + description: "Specific values of the signal property to which the rule applies." + items: + type: "string" + signal-property-value-rule: + type: "string" + description: "Indicates how the signal properties should be accounted for." + signal-property-name: + type: "string" + description: "The name of the signal property to which the rule applies." + tapi.topology.SignalPropertyRuleWrapper: + properties: + signal-property: + $ref: "#/definitions/tapi.topology.SignalPropertyRule" + tapi.topology.Topology: + allOf: + - $ref: "#/definitions/tapi.common.GlobalClass" + - type: "object" + properties: + layer-protocol-name: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + link: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.Link" + node: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.Node" + description: "The ForwardingDomain (FD) object class models the ForwardingDomain\ + \ topological component which is used to effect forwarding of transport characteristic\ + \ information and offers the potential to enable forwarding. \r\n \ + \ At the lowest level of recursion, an FD (within a network element (NE))\ + \ represents a switch matrix (i.e., a fabric). Note that an NE can encompass\ + \ multiple switch matrices (FDs). " + tapi.topology.TopologyContext: + type: "object" + properties: + nw-topology-service: + description: "none" + $ref: "#/definitions/tapi.topology.NetworkTopologyService" + topology: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.Topology" + tapi.topology.TopologyContextWrapper: + properties: + tapi-topology:topology-context: + $ref: "#/definitions/tapi.topology.TopologyContext" + tapi.topology.TopologyRef: + type: "object" + properties: + topology-uuid: + type: "string" + description: "none" + x-path: "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:uuid" + tapi.topology.TopologyRefWrapper: + properties: + topology: + $ref: "#/definitions/tapi.topology.TopologyRef" + tapi.topology.TopologyWrapper: + properties: + topology: + $ref: "#/definitions/tapi.topology.Topology" + tapi.topology.TransferCostPac: + type: "object" + properties: + cost-characteristic: + type: "array" + description: "The list of costs where each cost relates to some aspect of\ + \ the TopologicalEntity." + items: + $ref: "#/definitions/tapi.topology.CostCharacteristic" + tapi.topology.TransferIntegrityPac: + type: "object" + properties: + error-characteristic: + type: "string" + description: "Describes the degree to which the signal propagated can be errored.\r\ + \n Applies to TDM systems as the errored signal will be propagated\ + \ and not packet as errored packets will be discarded." + unavailable-time-characteristic: + type: "string" + description: "Describes the duration for which there may be no valid signal\ + \ propagated." + server-integrity-process-characteristic: + type: "string" + description: "Describes the effect of any server integrity enhancement process\ + \ on the characteristics of the TopologicalEntity." + delivery-order-characteristic: + type: "string" + description: "Describes the degree to which packets will be delivered out\ + \ of sequence.\r\n Does not apply to TDM as the TDM protocols\ + \ maintain strict order." + repeat-delivery-characteristic: + type: "string" + description: "Primarily applies to packet systems where a packet may be delivered\ + \ more than once (in fault recovery for example).\r\n It\ + \ can also apply to TDM where several frames may be received twice due to\ + \ switching in a system with a large differential propagation delay." + loss-characteristic: + type: "string" + description: "Describes the acceptable characteristic of lost packets where\ + \ loss may result from discard due to errors or overflow.\r\n \ + \ Applies to packet systems and not TDM (as for TDM errored signals\ + \ are propagated unless grossly errored and overflow/underflow turns into\ + \ timing slips)." + tapi.topology.TransferTimingPac: + type: "object" + properties: + latency-characteristic: + type: "array" + description: "The effect on the latency of a queuing process. This only has\ + \ significant effect for packet based systems and has a complex characteristic." + items: + $ref: "#/definitions/tapi.topology.LatencyCharacteristic" + tapi.topology.ValidationMechanism: + type: "object" + properties: + layer-protocol-adjacency-validated: + type: "string" + description: "State of validatiion" + validation-mechanism: + type: "string" + description: "Name of mechanism used to validate adjacency" + validation-robustness: + type: "string" + description: "Quality of validation (i.e. how likely is the stated validation\ + \ to be invalid)" + tapi.topology.ValidationMechanismWrapper: + properties: + validation-mechanism: + $ref: "#/definitions/tapi.topology.ValidationMechanism" + tapi.topology.ValidationPac: + type: "object" + properties: + validation-mechanism: + type: "array" + description: "Provides details of the specific validation mechanism(s) used\ + \ to confirm the presence of an intended topologicalEntity." + items: + $ref: "#/definitions/tapi.topology.ValidationMechanism" + tapi.topology.getlinkdetails.Input: + type: "object" + properties: + link-id-or-name: + type: "string" + description: "none" + topology-id-or-name: + type: "string" + description: "none" + tapi.topology.getlinkdetails.Output: + type: "object" + properties: + link: + description: "none" + $ref: "#/definitions/tapi.topology.Link" + tapi.topology.getnodedetails.Input: + type: "object" + properties: + node-id-or-name: + type: "string" + description: "none" + topology-id-or-name: + type: "string" + description: "none" + tapi.topology.getnodedetails.Output: + type: "object" + properties: + node: + description: "none" + $ref: "#/definitions/tapi.topology.Node" + tapi.topology.getnodeedgepointdetails.Input: + type: "object" + properties: + ep-id-or-name: + type: "string" + description: "none" + node-id-or-name: + type: "string" + description: "none" + topology-id-or-name: + type: "string" + description: "none" + tapi.topology.getnodeedgepointdetails.Output: + type: "object" + properties: + node-edge-point: + description: "none" + $ref: "#/definitions/tapi.topology.NodeEdgePoint" + tapi.topology.gettopologydetails.Input: + type: "object" + properties: + topology-id-or-name: + type: "string" + description: "none" + tapi.topology.gettopologydetails.Output: + type: "object" + properties: + topology: + description: "none" + $ref: "#/definitions/tapi.topology.Topology" + tapi.topology.gettopologylist.Output: + type: "object" + properties: + topology: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.Topology" + tapi.topology.node.OwnedNodeEdgePoint: + allOf: + - $ref: "#/definitions/tapi.connectivity.OwnedNodeEdgePointAugmentation1" + - $ref: "#/definitions/tapi.topology.NodeEdgePoint" + tapi.topology.node.OwnedNodeEdgePointWrapper: + properties: + owned-node-edge-point: + $ref: "#/definitions/tapi.topology.node.OwnedNodeEdgePoint" + tapi.topology.topology.Node: + allOf: + - $ref: "#/definitions/tapi.common.AdminStatePac" + - $ref: "#/definitions/tapi.common.CapacityPac" + - $ref: "#/definitions/tapi.common.GlobalClass" + - $ref: "#/definitions/tapi.topology.TransferCostPac" + - $ref: "#/definitions/tapi.topology.TransferIntegrityPac" + - $ref: "#/definitions/tapi.topology.TransferTimingPac" + - type: "object" + properties: + layer-protocol-name: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.common.LayerProtocolName" + encap-topology: + description: "none" + $ref: "#/definitions/tapi.topology.TopologyRef" + owned-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.node.OwnedNodeEdgePoint" + node-rule-group: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeRuleGroup" + aggregated-node-edge-point: + type: "array" + description: "none" + items: + $ref: "#/definitions/tapi.topology.NodeEdgePointRef" + description: "none" + tapi.topology.topology.NodeWrapper: + properties: + node: + $ref: "#/definitions/tapi.topology.topology.Node" diff --git a/hackfest/tapi/tapi_app/ols-topo.dot b/hackfest/tapi/tapi_app/ols-topo.dot new file mode 100644 index 0000000000000000000000000000000000000000..89122169f5d5b6c28fe365cec812aaca1eeeb476 --- /dev/null +++ b/hackfest/tapi/tapi_app/ols-topo.dot @@ -0,0 +1,16 @@ +strict digraph { +"node-1"; +"node-2"; +"node-3"; +"node-4"; +"node-1" -> "node-3"; +"node-1" -> "node-4"; +"node-2" -> "node-3"; +"node-2" -> "node-4"; +"node-3" -> "node-1"; +"node-3" -> "node-2"; +"node-3" -> "node-4"; +"node-4" -> "node-1"; +"node-4" -> "node-2"; +"node-4" -> "node-3"; +} diff --git a/hackfest/tapi/tapi_app/ols-topo.png b/hackfest/tapi/tapi_app/ols-topo.png new file mode 100644 index 0000000000000000000000000000000000000000..94ac969f94679d1bc9e7bad7f5810b153106a517 Binary files /dev/null and b/hackfest/tapi/tapi_app/ols-topo.png differ diff --git a/hackfest/tapi/tapi_app/requirements.sh b/hackfest/tapi/tapi_app/requirements.sh new file mode 100644 index 0000000000000000000000000000000000000000..95832bb6628447bb1d5d6e7cd8a477468ebe5ef6 --- /dev/null +++ b/hackfest/tapi/tapi_app/requirements.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +sudo apt install graphviz +pip install -r requirements.txt diff --git a/hackfest/tapi/tapi_app/requirements.txt b/hackfest/tapi/tapi_app/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..43c1b1341f489fd80fe350d1e7916df6a3c5506d --- /dev/null +++ b/hackfest/tapi/tapi_app/requirements.txt @@ -0,0 +1,2 @@ +matplotlib == 3.6.1 +networkx == 2.6.3 diff --git a/hackfest/tapi/tapi_app/tapi_app.py b/hackfest/tapi/tapi_app/tapi_app.py new file mode 100644 index 0000000000000000000000000000000000000000..195306c7b1e0f586f03b1c625846550a2cc06c57 --- /dev/null +++ b/hackfest/tapi/tapi_app/tapi_app.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import json, requests, networkx as nx +from requests.auth import HTTPBasicAuth + +IP = '127.0.0.1' +PORT = 8080 +TOPO_UUID = 'ols-topo' +TOPO_URL = 'http://{:s}:{:d}/restconf/data/tapi-common:context/'\ + 'tapi-topology:topology-context/topology={:s}/' + +def retrieve_topology(ip, port, topo_uuid, user='', passwd=''): + print ("Reading network-topology") + topo_url = TOPO_URL.format(ip, port, topo_uuid) + response = requests.get(topo_url, auth=HTTPBasicAuth(user, passwd)) + topology = response.json() + print ("Retrieved Topology: " + json.dumps(topology, indent=4)) + return topology + +def to_png_matplotlib(nwk_graph, topo_uuid): + import matplotlib.pyplot as plt + nx.draw(nwk_graph, pos=nx.spring_layout(nwk_graph, scale=500)) + plt.show(block=False) + plt.savefig('{:s}.png'.format(topo_uuid), format='PNG') + plt.close() + +def to_png_pydot(nwk_graph, topo_uuid): + from networkx.drawing.nx_pydot import write_dot, to_pydot + write_dot(nwk_graph, '{:s}.dot'.format(topo_uuid)) + dot_graph = to_pydot(nwk_graph) + with open('{:s}.png'.format(topo_uuid), 'wb') as f: + f.write(dot_graph.create(format='png')) + +def draw_topology(topology): + nwk_graph = nx.DiGraph() + + for node in topology['node']: + if node['owned-node-edge-point']: + nwk_graph.add_node(node['uuid']) + + for link in topology['link']: + node1 = link['node-edge-point'][0]['node-uuid'] + node2 = link['node-edge-point'][1]['node-uuid'] + nwk_graph.add_edge(node1, node2) + + #to_png_matplotlib(nwk_graph, topology['uuid']) + to_png_pydot(nwk_graph, topology['uuid']) + +if __name__ == "__main__": + draw_topology(retrieve_topology(IP, PORT, TOPO_UUID)) diff --git a/hackfest/tfs-descriptors/context-topology.json b/hackfest/tfs-descriptors/context-topology.json new file mode 100644 index 0000000000000000000000000000000000000000..36b3c44fd61fdec9d208a82a11d5a16c3671d004 --- /dev/null +++ b/hackfest/tfs-descriptors/context-topology.json @@ -0,0 +1,19 @@ +{ + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_ids": [], + "service_ids": [] + } + ], + "topologies": [ + { + "topology_id": { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_uuid": {"uuid": "admin"} + }, + "device_ids": [], + "link_ids": [] + } + ] +} diff --git a/hackfest/tfs-descriptors/device-all.json b/hackfest/tfs-descriptors/device-all.json new file mode 100644 index 0000000000000000000000000000000000000000..8cb8e031488f0dd1fa4176b8d20d01fe2d24abc9 --- /dev/null +++ b/hackfest/tfs-descriptors/device-all.json @@ -0,0 +1,84 @@ +{ + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8301"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", + "force_running": false, "hostkey_verify": false, "look_for_keys": false, + "allow_agent": false, "delete_rule": true, "device_params": {"name": "default"}, + "manager_params": {"timeout" : 120} + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8302"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", + "force_running": false, "hostkey_verify": false, "look_for_keys": false, + "allow_agent": false, "delete_rule": true, "device_params": {"name": "default"}, + "manager_params": {"timeout" : 120} + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8303"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", + "force_running": false, "hostkey_verify": false, "look_for_keys": false, + "allow_agent": false, "delete_rule": true, "device_params": {"name": "default"}, + "manager_params": {"timeout" : 120} + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "R4"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8304"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", + "force_running": false, "hostkey_verify": false, "look_for_keys": false, + "allow_agent": false, "delete_rule": true, "device_params": {"name": "default"}, + "manager_params": {"timeout" : 120} + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "OLS"}}, + "device_type": "open-line-system", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8080"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"timeout": 120}}} + ]}, + "device_operational_status": 1, + "device_drivers": [2], + "device_endpoints": [] + } + ] +} diff --git a/hackfest/tfs-descriptors/device-netconf-openconfig.json b/hackfest/tfs-descriptors/device-netconf-openconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..7e01f037e744493a8cd1190b2510ed3d4d1c86aa --- /dev/null +++ b/hackfest/tfs-descriptors/device-netconf-openconfig.json @@ -0,0 +1,21 @@ +{ + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8300"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", + "force_running": false, "hostkey_verify": false, "look_for_keys": false, + "allow_agent": false, "delete_rule": true, "device_params": {"name": "default"}, + "manager_params": {"timeout" : 15} + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + } + ] +} diff --git a/hackfest/tfs-descriptors/device-tapi-ols.json b/hackfest/tfs-descriptors/device-tapi-ols.json new file mode 100644 index 0000000000000000000000000000000000000000..3dcdc562edb50e0b63e69f5745600110dd42151c --- /dev/null +++ b/hackfest/tfs-descriptors/device-tapi-ols.json @@ -0,0 +1,16 @@ +{ + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "OLS"}}, + "device_type": "open-line-system", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8080"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"timeout": 120}}} + ]}, + "device_operational_status": 1, + "device_drivers": [2], + "device_endpoints": [] + } + ] +} diff --git a/hackfest/tfs-descriptors/links.json b/hackfest/tfs-descriptors/links.json new file mode 100644 index 0000000000000000000000000000000000000000..8a991fd622ac89bcb6fafed5abe61de0c6e17641 --- /dev/null +++ b/hackfest/tfs-descriptors/links.json @@ -0,0 +1,63 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "R1/1/1==OLS/node-1-port-15-input"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "1/1"}}, + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-1-port-15-input"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "OLS/node-1-port-15-output==R1/1/1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-1-port-15-output"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "1/1"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "R2/1/1==OLS/node-2-port-15-input"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "1/1"}}, + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-2-port-15-input"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "OLS/node-2-port-15-output==R2/1/1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-2-port-15-output"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "1/1"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "R3/1/1==OLS/node-3-port-15-input"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "1/1"}}, + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-3-port-15-input"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "OLS/node-3-port-15-output==R3/1/1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-3-port-15-output"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "1/1"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "R4/1/1==OLS/node-4-port-15-input"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "1/1"}}, + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-4-port-15-input"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "OLS/node-4-port-15-output==R4/1/1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "OLS"}}, "endpoint_uuid": {"uuid": "node-4-port-15-output"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "1/1"}} + ] + } + ] +} diff --git a/hackfest/tfs-descriptors/old/device.json b/hackfest/tfs-descriptors/old/device.json new file mode 100644 index 0000000000000000000000000000000000000000..03736314dee9ea0a8aae27627361dcdd24457fca --- /dev/null +++ b/hackfest/tfs-descriptors/old/device.json @@ -0,0 +1,77 @@ +{ + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_ids": [], + "service_ids": [] + } + ], + "topologies": [ + { + "topology_id": {"topology_uuid": {"uuid": "admin"}, "context_id": {"context_uuid": {"uuid": "admin"}}}, + "device_ids": [ + {"device_uuid": {"uuid": "R1"}}, + {"device_uuid": {"uuid": "R2"}}, + {"device_uuid": {"uuid": "R3"}} + ], + "link_ids": [ + {"link_uuid":{"uuid":"R1-1/1==R2-1/2"}}, + {"link_uuid":{"uuid":"R2-1/1==R3-1/2"}} + ] + } + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8301"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\" : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8302"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\" : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, + "device_type": "packet-router", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8303"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\" : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}} + ]}, + "device_operational_status": 1, + "device_drivers": [1], + "device_endpoints": [] + } + ], + "links": [ + { + "link_id":{"link_uuid":{"uuid":"R1-1/1==R2-1/2"}}, + "link_endpoint_ids":[ + {"device_id":{"device_uuid":{"uuid":"R1"}},"endpoint_uuid":{"uuid":"1/1"}}, + {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/2"}} + ] + }, + { + "link_id":{"link_uuid":{"uuid":"R2-1/1==R3-1/2"}}, + "link_endpoint_ids":[ + {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/1"}}, + {"device_id":{"device_uuid":{"uuid":"R3"}},"endpoint_uuid":{"uuid":"1/2"}} + ] + } + ] +} diff --git a/hackfest/tfs-descriptors/old/service.json b/hackfest/tfs-descriptors/old/service.json new file mode 100644 index 0000000000000000000000000000000000000000..a25d0171dbfdbf174a877151201752c76759514a --- /dev/null +++ b/hackfest/tfs-descriptors/old/service.json @@ -0,0 +1,27 @@ +{ + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_ids": [], + "service_ids": [ + {"context_id":{"context_uuid":{"uuid":"admin"}},"service_uuid":{"uuid":"hackfest-svc"}} + ] + } + ], + "services": [ + { + "service_id":{"context_id":{"context_uuid":{"uuid":"admin"}},"service_uuid":{"uuid":"hackfest-svc"}}, + "service_type": 1, + "service_status":{"service_status": 1}, + "service_endpoint_ids":[ + {"device_id":{"device_uuid":{"uuid":"R1"}},"endpoint_uuid":{"uuid":"1/3"}}, + {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/3"}} + ], + "service_constraints":[ + {"custom": {"constraint_type": "bandwidth[gbps]", "constraint_value": "10.0"}}, + {"custom": {"constraint_type": "latency[ms]", "constraint_value": "20.0"}} + ], + "service_config":{"config_rules":[]} + } + ] +} diff --git a/hackfest/tfs-descriptors/service-l3vpn.json b/hackfest/tfs-descriptors/service-l3vpn.json new file mode 100644 index 0000000000000000000000000000000000000000..457ba1a509aebc5eaea8caa37a09ac62ef286f32 --- /dev/null +++ b/hackfest/tfs-descriptors/service-l3vpn.json @@ -0,0 +1,44 @@ +{ + "services": [ + { + "service_id": { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "service_uuid": {"uuid": "netx-l3-svc"} + }, + "service_type": 1, + "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "1/2"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "1/2"}} + ], + "service_constraints": [ + {"custom": {"constraint_type": "bandwidth[gbps]", "constraint_value": "10.0"}}, + {"custom": {"constraint_type": "latency[ms]", "constraint_value": "15.2"}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/settings", "resource_value": { + "address_families": ["IPV4"], + "bgp_as": 65000, + "bgp_route_target": "65000:333", + "mtu": 1512 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[1/2]/settings", "resource_value": { + "address_ip": "3.3.2.1", + "address_prefix": 24, + "route_distinguisher": "65000:123", + "router_id": "10.10.10.1", + "sub_interface_index": 400, + "vlan_id": 400 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[1/2]/settings", "resource_value": { + "address_ip": "3.3.1.1", + "address_prefix": 24, + "route_distinguisher": "65000:321", + "router_id": "20.20.20.1", + "sub_interface_index": 400, + "vlan_id": 500 + }}} + ]} + } + ] +} diff --git a/hackfest/yang/binding_topology.py b/hackfest/yang/binding_topology.py new file mode 100644 index 0000000000000000000000000000000000000000..12ea1901b5a40b736434978b145a6d9110a16470 --- /dev/null +++ b/hackfest/yang/binding_topology.py @@ -0,0 +1,714 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_port_topology__topology_node_port(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node/port. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__port_id','__layer_protocol_name',) + + _yang_name = 'port' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ETH': {}, 'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['topology', 'node', 'port'] + + def _get_port_id(self): + """ + Getter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + """ + return self.__port_id + + def _set_port_id(self, v, load=False): + """ + Setter method for port_id, mapped from YANG variable /topology/node/port/port_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_port_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__port_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_port_id(self): + self.__port_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="port-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /topology/node/port/layer_protocol_name (layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ETH': {}, 'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ETH': {}, 'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ETH': {}, 'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='layer-protocol-name', is_config=True) + + port_id = __builtin__.property(_get_port_id, _set_port_id) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('port_id', port_id), ('layer_protocol_name', layer_protocol_name), ]) + + +class yc_node_topology__topology_node(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/node. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node_id','__port',) + + _yang_name = 'node' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['topology', 'node'] + + def _get_node_id(self): + """ + Getter method for node_id, mapped from YANG variable /topology/node/node_id (string) + """ + return self.__node_id + + def _set_node_id(self, v, load=False): + """ + Setter method for node_id, mapped from YANG variable /topology/node/node_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_node_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__node_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_node_id(self): + self.__node_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="node-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_port(self): + """ + Getter method for port, mapped from YANG variable /topology/node/port (list) + """ + return self.__port + + def _set_port(self, v, load=False): + """ + Setter method for port, mapped from YANG variable /topology/node/port (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """port must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__port = t + if hasattr(self, '_set'): + self._set() + + def _unset_port(self): + self.__port = YANGDynClass(base=YANGListType("port_id",yc_port_topology__topology_node_port, yang_name="port", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='port-id', extensions=None), is_container='list', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node_id = __builtin__.property(_get_node_id, _set_node_id) + port = __builtin__.property(_get_port, _set_port) + + + _pyangbind_elements = OrderedDict([('node_id', node_id), ('port', port), ]) + + +class yc_link_topology__topology_link(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology/link. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__link_id','__source_node','__target_node','__source_port','__target_port',) + + _yang_name = 'link' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['topology', 'link'] + + def _get_link_id(self): + """ + Getter method for link_id, mapped from YANG variable /topology/link/link_id (string) + """ + return self.__link_id + + def _set_link_id(self, v, load=False): + """ + Setter method for link_id, mapped from YANG variable /topology/link/link_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_link_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True)""", + }) + + self.__link_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_link_id(self): + self.__link_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="link-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:topology', defining_module='topology', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /topology/link/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /topology/link/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /topology/link/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /topology/link/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:topology', defining_module='topology', yang_type='leafref', is_config=True) + + link_id = __builtin__.property(_get_link_id, _set_link_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + + + _pyangbind_elements = OrderedDict([('link_id', link_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ]) + + +class yc_topology_topology__topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__node','__link',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return ['topology'] + + def _get_node(self): + """ + Getter method for node, mapped from YANG variable /topology/node (list) + """ + return self.__node + + def _set_node(self, v, load=False): + """ + Setter method for node, mapped from YANG variable /topology/node (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """node must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__node = t + if hasattr(self, '_set'): + self._set() + + def _unset_node(self): + self.__node = YANGDynClass(base=YANGListType("node_id",yc_node_topology__topology_node, yang_name="node", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='node-id', extensions=None), is_container='list', yang_name="node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + + def _get_link(self): + """ + Getter method for link, mapped from YANG variable /topology/link (list) + """ + return self.__link + + def _set_link(self, v, load=False): + """ + Setter method for link, mapped from YANG variable /topology/link (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_link is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_link() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """link must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True)""", + }) + + self.__link = t + if hasattr(self, '_set'): + self._set() + + def _unset_link(self): + self.__link = YANGDynClass(base=YANGListType("link_id",yc_link_topology__topology_link, yang_name="link", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='link-id', extensions=None), is_container='list', yang_name="link", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='list', is_config=True) + + node = __builtin__.property(_get_node, _set_node) + link = __builtin__.property(_get_link, _set_link) + + + _pyangbind_elements = OrderedDict([('node', node), ('link', link), ]) + + +class topology(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module topology - based on the path /topology. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__topology',) + + _yang_name = 'topology' + _yang_namespace = 'urn:topology' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_topology(self): + """ + Getter method for topology, mapped from YANG variable /topology (container) + """ + return self.__topology + + def _set_topology(self, v, load=False): + """ + Setter method for topology, mapped from YANG variable /topology (container) + If this variable is read-only (config: false) in the + source YANG file, then _set_topology is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_topology() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """topology must be of a type compatible with container""", + 'defined-type': "container", + 'generated-type': """YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True)""", + }) + + self.__topology = t + if hasattr(self, '_set'): + self._set() + + def _unset_topology(self): + self.__topology = YANGDynClass(base=yc_topology_topology__topology, is_container='container', yang_name="topology", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:topology', defining_module='topology', yang_type='container', is_config=True) + + topology = __builtin__.property(_get_topology, _set_topology) + + + _pyangbind_elements = OrderedDict([('topology', topology), ]) + + diff --git a/hackfest/yang/connection/binding_connection.py b/hackfest/yang/connection/binding_connection.py new file mode 100644 index 0000000000000000000000000000000000000000..6da8d21d942afce3e3502783def6179bef406cae --- /dev/null +++ b/hackfest/yang/connection/binding_connection.py @@ -0,0 +1,411 @@ +# -*- coding: utf-8 -*- +from operator import attrgetter +from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType +from pyangbind.lib.yangtypes import RestrictedClassType +from pyangbind.lib.yangtypes import TypedListType +from pyangbind.lib.yangtypes import YANGBool +from pyangbind.lib.yangtypes import YANGListType +from pyangbind.lib.yangtypes import YANGDynClass +from pyangbind.lib.yangtypes import ReferenceType +from pyangbind.lib.base import PybindBase +from collections import OrderedDict +from decimal import Decimal +from bitarray import bitarray +import six + +# PY3 support of some PY2 keywords (needs improved) +if six.PY3: + import builtins as __builtin__ + long = int +elif six.PY2: + import __builtin__ + +class yc_connection_connection__connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + """ + __slots__ = ('_path_helper', '_extmethods', '__connection_id','__source_node','__target_node','__source_port','__target_port','__bandwidth','__layer_protocol_name',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [u'connection'] + + def _get_connection_id(self): + """ + Getter method for connection_id, mapped from YANG variable /connection/connection_id (string) + """ + return self.__connection_id + + def _set_connection_id(self, v, load=False): + """ + Setter method for connection_id, mapped from YANG variable /connection/connection_id (string) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection_id is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection_id() directly. + """ + parent = getattr(self, "_parent", None) + if parent is not None and load is False: + raise AttributeError("Cannot set keys directly when" + + " within an instantiated list") + + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection_id must be of a type compatible with string""", + 'defined-type': "string", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True)""", + }) + + self.__connection_id = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection_id(self): + self.__connection_id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="connection-id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='urn:connection', defining_module='connection', yang_type='string', is_config=True) + + + def _get_source_node(self): + """ + Getter method for source_node, mapped from YANG variable /connection/source_node (leafref) + """ + return self.__source_node + + def _set_source_node(self, v, load=False): + """ + Setter method for source_node, mapped from YANG variable /connection/source_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_node(self): + self.__source_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_node(self): + """ + Getter method for target_node, mapped from YANG variable /connection/target_node (leafref) + """ + return self.__target_node + + def _set_target_node(self, v, load=False): + """ + Setter method for target_node, mapped from YANG variable /connection/target_node (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_node is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_node() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_node must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_node = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_node(self): + self.__target_node = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-node", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_source_port(self): + """ + Getter method for source_port, mapped from YANG variable /connection/source_port (leafref) + """ + return self.__source_port + + def _set_source_port(self, v, load=False): + """ + Setter method for source_port, mapped from YANG variable /connection/source_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_source_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_source_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """source_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__source_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_source_port(self): + self.__source_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="source-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_target_port(self): + """ + Getter method for target_port, mapped from YANG variable /connection/target_port (leafref) + """ + return self.__target_port + + def _set_target_port(self, v, load=False): + """ + Setter method for target_port, mapped from YANG variable /connection/target_port (leafref) + If this variable is read-only (config: false) in the + source YANG file, then _set_target_port is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_target_port() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """target_port must be of a type compatible with leafref""", + 'defined-type': "leafref", + 'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True)""", + }) + + self.__target_port = t + if hasattr(self, '_set'): + self._set() + + def _unset_target_port(self): + self.__target_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="target-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='leafref', is_config=True) + + + def _get_bandwidth(self): + """ + Getter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + """ + return self.__bandwidth + + def _set_bandwidth(self, v, load=False): + """ + Setter method for bandwidth, mapped from YANG variable /connection/bandwidth (uint32) + If this variable is read-only (config: false) in the + source YANG file, then _set_bandwidth is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_bandwidth() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """bandwidth must be of a type compatible with uint32""", + 'defined-type': "uint32", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True)""", + }) + + self.__bandwidth = t + if hasattr(self, '_set'): + self._set() + + def _unset_bandwidth(self): + self.__bandwidth = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='uint32', is_config=True) + + + def _get_layer_protocol_name(self): + """ + Getter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + """ + return self.__layer_protocol_name + + def _set_layer_protocol_name(self, v, load=False): + """ + Setter method for layer_protocol_name, mapped from YANG variable /connection/layer_protocol_name (topology:layer-protocol-name) + If this variable is read-only (config: false) in the + source YANG file, then _set_layer_protocol_name is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_layer_protocol_name() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """layer_protocol_name must be of a type compatible with topology:layer-protocol-name""", + 'defined-type': "topology:layer-protocol-name", + 'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True)""", + }) + + self.__layer_protocol_name = t + if hasattr(self, '_set'): + self._set() + + def _unset_layer_protocol_name(self): + self.__layer_protocol_name = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={u'ETH': {}, u'OPTICAL': {}},), is_leaf=True, yang_name="layer-protocol-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='urn:connection', defining_module='connection', yang_type='topology:layer-protocol-name', is_config=True) + + connection_id = __builtin__.property(_get_connection_id, _set_connection_id) + source_node = __builtin__.property(_get_source_node, _set_source_node) + target_node = __builtin__.property(_get_target_node, _set_target_node) + source_port = __builtin__.property(_get_source_port, _set_source_port) + target_port = __builtin__.property(_get_target_port, _set_target_port) + bandwidth = __builtin__.property(_get_bandwidth, _set_bandwidth) + layer_protocol_name = __builtin__.property(_get_layer_protocol_name, _set_layer_protocol_name) + + + _pyangbind_elements = OrderedDict([('connection_id', connection_id), ('source_node', source_node), ('target_node', target_node), ('source_port', source_port), ('target_port', target_port), ('bandwidth', bandwidth), ('layer_protocol_name', layer_protocol_name), ]) + + +class connection(PybindBase): + """ + This class was auto-generated by the PythonClass plugin for PYANG + from YANG module connection - based on the path /connection. Each member element of + the container is represented as a class variable - with a specific + YANG type. + + YANG Description: Basic example of network topology + """ + __slots__ = ('_path_helper', '_extmethods', '__connection',) + + _yang_name = 'connection' + _yang_namespace = 'urn:connection' + + _pybind_generated_by = 'container' + + def __init__(self, *args, **kwargs): + + self._path_helper = False + + self._extmethods = False + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + load = kwargs.pop("load", None) + if args: + if len(args) > 1: + raise TypeError("cannot create a YANG container with >1 argument") + all_attr = True + for e in self._pyangbind_elements: + if not hasattr(args[0], e): + all_attr = False + break + if not all_attr: + raise ValueError("Supplied object did not have the correct attributes") + for e in self._pyangbind_elements: + nobj = getattr(args[0], e) + if nobj._changed() is False: + continue + setmethod = getattr(self, "_set_%s" % e) + if load is None: + setmethod(getattr(args[0], e)) + else: + setmethod(getattr(args[0], e), load=load) + + def _path(self): + if hasattr(self, "_parent"): + return self._parent._path()+[self._yang_name] + else: + return [] + + def _get_connection(self): + """ + Getter method for connection, mapped from YANG variable /connection (list) + """ + return self.__connection + + def _set_connection(self, v, load=False): + """ + Setter method for connection, mapped from YANG variable /connection (list) + If this variable is read-only (config: false) in the + source YANG file, then _set_connection is considered as a private + method. Backends looking to populate this variable should + do so via calling thisObj._set_connection() directly. + """ + if hasattr(v, "_utype"): + v = v._utype(v) + try: + t = YANGDynClass(v,base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + except (TypeError, ValueError): + raise ValueError({ + 'error-string': """connection must be of a type compatible with list""", + 'defined-type': "list", + 'generated-type': """YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True)""", + }) + + self.__connection = t + if hasattr(self, '_set'): + self._set() + + def _unset_connection(self): + self.__connection = YANGDynClass(base=YANGListType("connection_id",yc_connection_connection__connection, yang_name="connection", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='connection-id', extensions=None), is_container='list', yang_name="connection", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='urn:connection', defining_module='connection', yang_type='list', is_config=True) + + connection = __builtin__.property(_get_connection, _set_connection) + + + _pyangbind_elements = OrderedDict([('connection', connection), ]) + + diff --git a/hackfest/yang/connection/connection.py b/hackfest/yang/connection/connection.py new file mode 100644 index 0000000000000000000000000000000000000000..c404d2f5c06508a5b23d733b618dc16dc0b20a9f --- /dev/null +++ b/hackfest/yang/connection/connection.py @@ -0,0 +1,15 @@ +from binding_connection import connection +from pyangbind.lib.serialise import pybindIETFXMLEncoder +import pyangbind.lib.pybindJSON as pybindJSON + +con = connection() +con1 = con.connection.add("con1") +con1.source_node = "node1" +con1.target_node = "node2" +con1.source_port = "node1portA" +con1.target_port = "node2portA" +con1.bandwidth = 1000 +con1.layer_protocol_name = "OPTICAL" + +print(pybindIETFXMLEncoder.serialise(con)) +print(pybindJSON.dumps(con)) diff --git a/hackfest/yang/connection/connection.tree b/hackfest/yang/connection/connection.tree new file mode 100644 index 0000000000000000000000000000000000000000..cf8954eb7ceeae52d22ba73b37c482804dcca068 --- /dev/null +++ b/hackfest/yang/connection/connection.tree @@ -0,0 +1,9 @@ +module: connection + +--rw connection* [connection-id] + +--rw connection-id string + +--rw source-node? -> /topology:topology/node/node-id + +--rw target-node? -> /topology:topology/node/node-id + +--rw source-port? -> /topology:topology/node/port/port-id + +--rw target-port? -> /topology:topology/node/port/port-id + +--rw bandwidth? uint32 + +--rw layer-protocol-name? topology:layer-protocol-name diff --git a/hackfest/yang/connection/connection.uml b/hackfest/yang/connection/connection.uml new file mode 100644 index 0000000000000000000000000000000000000000..9abf20da021b920eb4b34e963192c14e178318ad --- /dev/null +++ b/hackfest/yang/connection/connection.uml @@ -0,0 +1,38 @@ +'Download plantuml from http://plantuml.sourceforge.net/ +'Generate png with java -jar plantuml.jar +'Output in img/.png +'If Java spits out memory error increase heap size with java -Xmx1024m -jar plantuml.jar +@startuml img/connection.png +hide empty fields +hide empty methods +hide <> circle +hide <> circle +hide <> circle +hide <> stereotype +hide <> circle +page 1x1 +Title connection +package "topology:topology" as topology_topology { +} +note top of connection_connection : Namespace: urn:connection \nPrefix: connection \nOrganization : \nCTTC \nContact : \nricard.vilalta@cttc.es \nRevision : 2018-08-24 \n +package "connection:connection" as connection_connection { +topology_topology +-- connection_connection +class "connection" as connection << (M, #33CCFF) module>> +class "connection" as connection_I_connection_grouping <<(G,Lime) grouping>> +connection_I_connection_grouping : connection-id : string +connection_I_connection_grouping : source-node : leafref : /topology:topology/topology:node/topology:node-id +connection_I_connection_grouping : target-node : leafref : /topology:topology/topology:node/topology:node-id +connection_I_connection_grouping : source-port : leafref : /topology:topology/topology:node/topology:port/topology:port-id +connection_I_connection_grouping : target-port : leafref : /topology:topology/topology:node/topology:port/topology:port-id +connection_I_connection_grouping : bandwidth : uint32 +connection_I_connection_grouping : layer-protocol-name : topology:layer-protocol-name +class "connection" as connection_I_connection << (L, #FF7700) list>> +connection *-- "0..N" connection_I_connection +connection_I_connection : connection {uses} +} + +connection_I_connection --> connection_I_connection_grouping : uses +center footer + UML Generated : 2018-11-08 09:13 + endfooter +@enduml diff --git a/hackfest/yang/connection/connection.yang b/hackfest/yang/connection/connection.yang new file mode 100644 index 0000000000000000000000000000000000000000..b94f9f81d932c829c4bb13f1fdd85781e8a6cc33 --- /dev/null +++ b/hackfest/yang/connection/connection.yang @@ -0,0 +1,68 @@ +module connection { + + namespace "urn:connection"; + + prefix "connection"; + + import topology { + prefix "topology"; + } + + organization + "CTTC"; + + contact + "ricard.vilalta@cttc.es"; + + description + "Basic example of network topology"; + + revision "2018-08-24" { + description "Basic example of network topology"; + reference ""; + } + + /** + * Groupings + */ + grouping connection { + leaf connection-id { + type string; + } + leaf source-node { + type leafref { + path "/topology:topology/topology:node/topology:node-id"; + } + } + leaf target-node { + type leafref { + path "/topology:topology/topology:node/topology:node-id"; + } + } + leaf source-port { + type leafref { + path "/topology:topology/topology:node/topology:port/topology:port-id"; + } + } + leaf target-port { + type leafref { + path "/topology:topology/topology:node/topology:port/topology:port-id"; + } + } + leaf bandwidth { + type uint32; + } + leaf layer-protocol-name { + type topology:layer-protocol-name; + } + } + + /** + * Container/lists + */ + list connection { + key "connection-id"; + uses connection; + } + +} diff --git a/hackfest/yang/img/connection.png b/hackfest/yang/img/connection.png new file mode 100644 index 0000000000000000000000000000000000000000..f282df27e0ffaa079b007157c2078d1e95655d9e Binary files /dev/null and b/hackfest/yang/img/connection.png differ diff --git a/hackfest/yang/img/topology.png b/hackfest/yang/img/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..69ea84a1ee6a1396233381841ffef1e00edeb88d Binary files /dev/null and b/hackfest/yang/img/topology.png differ diff --git a/hackfest/yang/plantuml.jar b/hackfest/yang/plantuml.jar new file mode 100644 index 0000000000000000000000000000000000000000..880a35ec71b4de28da4541603ee08c5189831791 Binary files /dev/null and b/hackfest/yang/plantuml.jar differ diff --git a/hackfest/yang/topology.py b/hackfest/yang/topology.py new file mode 100644 index 0000000000000000000000000000000000000000..441300fb5ca91243e55bbd1995b6610109b52d7e --- /dev/null +++ b/hackfest/yang/topology.py @@ -0,0 +1,20 @@ +from binding_topology import topology +from pyangbind.lib.serialise import pybindIETFXMLEncoder +import pyangbind.lib.pybindJSON as pybindJSON + +topo = topology() + +node1 = topo.topology.node.add("node1") +node1.port.add("node1portA") + +node2 = topo.topology.node.add("node2") +node2.port.add("node2portA") + +link = topo.topology.link.add("link1") +link.source_node = "node1" +link.target_node = "node2" +link.source_port = "node1portA" +link.target_port = "node2portA" + +print(pybindIETFXMLEncoder.serialise(topo)) +print(pybindJSON.dumps(topo)) diff --git a/hackfest/yang/topology.tree b/hackfest/yang/topology.tree new file mode 100644 index 0000000000000000000000000000000000000000..0baf4768f3cc85c5465d04b0ff1a55b939077167 --- /dev/null +++ b/hackfest/yang/topology.tree @@ -0,0 +1,13 @@ +module: topology + +--rw topology + +--rw node* [node-id] + | +--rw node-id string + | +--rw port* [port-id] + | +--rw port-id string + | +--rw layer-protocol-name? layer-protocol-name + +--rw link* [link-id] + +--rw link-id string + +--rw source-node? -> /topology/node/node-id + +--rw target-node? -> /topology/node/node-id + +--rw source-port? -> /topology/node/port/port-id + +--rw target-port? -> /topology/node/port/port-id diff --git a/hackfest/yang/topology.uml b/hackfest/yang/topology.uml new file mode 100644 index 0000000000000000000000000000000000000000..b4210312c1a594df306898de78835eb50989563d --- /dev/null +++ b/hackfest/yang/topology.uml @@ -0,0 +1,55 @@ +'Download plantuml from http://plantuml.sourceforge.net/ +'Generate png with java -jar plantuml.jar +'Output in img/.png +'If Java spits out memory error increase heap size with java -Xmx1024m -jar plantuml.jar +@startuml img/topology.png +hide empty fields +hide empty methods +hide <> circle +hide <> circle +hide <> circle +hide <> stereotype +hide <> circle +page 1x1 +Title topology +note top of topology_topology : Namespace: urn:topology \nPrefix: topology \nOrganization : \nCTTC \nContact : \nricard.vilalta@cttc.es \nRevision : 2018-08-24 \n +package "topology:topology" as topology_topology { +class "topology" as topology << (M, #33CCFF) module>> +enum "layer-protocol-name" as topology_I_layer_protocol_name { +ETH +OPTICAL +} +class "port" as topology_I_port_grouping <<(G,Lime) grouping>> +topology_I_port_grouping : port-id : string +topology_I_port_grouping : layer-protocol-name : layer-protocol-name +class "node" as topology_I_node_grouping <<(G,Lime) grouping>> +topology_I_node_grouping : node-id : string +class "port" as topology_I_node_I_port << (L, #FF7700) list>> +topology_I_node_grouping *-- "0..N" topology_I_node_I_port +topology_I_node_I_port : port {uses} +class "link" as topology_I_link_grouping <<(G,Lime) grouping>> +topology_I_link_grouping : link-id : string +topology_I_link_grouping : source-node : leafref : /topology/node/node-id +topology_I_link_grouping : target-node : leafref : /topology/node/node-id +topology_I_link_grouping : source-port : leafref : /topology/node/port/port-id +topology_I_link_grouping : target-port : leafref : /topology/node/port/port-id +class "topology" as topology_I_topology_grouping <<(G,Lime) grouping>> +class "node" as topology_I_topology_I_node << (L, #FF7700) list>> +topology_I_topology_grouping *-- "0..N" topology_I_topology_I_node +topology_I_topology_I_node : node {uses} +class "link" as topology_I_topology_I_link << (L, #FF7700) list>> +topology_I_topology_grouping *-- "0..N" topology_I_topology_I_link +topology_I_topology_I_link : link {uses} +class "topology" as topology_I_topology <> +topology *-- "1" topology_I_topology +topology_I_topology : topology {uses} +} + +topology_I_node_I_port --> topology_I_port_grouping : uses +topology_I_topology_I_node --> topology_I_node_grouping : uses +topology_I_topology_I_link --> topology_I_link_grouping : uses +topology_I_topology --> topology_I_topology_grouping : uses +center footer + UML Generated : 2022-10-10 17:35 + endfooter +@enduml diff --git a/hackfest/yang/topology.xml b/hackfest/yang/topology.xml new file mode 100644 index 0000000000000000000000000000000000000000..93af480850b540669f133a76b12519f5554b8850 --- /dev/null +++ b/hackfest/yang/topology.xml @@ -0,0 +1,23 @@ + + + + node1 + + node1portA + + + + node2 + + node2portA + + + + link1 + node1 + node1portA + node2 + node2portA + + + diff --git a/hackfest/yang/topology.yang b/hackfest/yang/topology.yang new file mode 100644 index 0000000000000000000000000000000000000000..521ceacd817fa70e89609dca825db2c7fa9c8302 --- /dev/null +++ b/hackfest/yang/topology.yang @@ -0,0 +1,99 @@ +module topology { + + namespace "urn:topology"; + + prefix "topology"; + + organization + "CTTC"; + + contact + "ricard.vilalta@cttc.es"; + + description + "Basic example of network topology"; + + revision "2018-08-24" { + description "Basic example of network topology"; + reference ""; + } + + /** + * Typedefs / identities + */ + typedef layer-protocol-name { + type enumeration { + enum "ETH"; + enum "OPTICAL"; + } + } + + + /** + * Groupings + */ + grouping port { + leaf port-id { + type string; + } + leaf layer-protocol-name { + type layer-protocol-name; + } + + } + + grouping node { + leaf node-id { + type string; + } + list port { + key "port-id"; + uses port; + } + } + + grouping link { + leaf link-id { + type string; + } + leaf source-node { + type leafref { + path "/topology/node/node-id"; + } + } + leaf target-node { + type leafref { + path "/topology/node/node-id"; + } + } + leaf source-port { + type leafref { + path "/topology/node/port/port-id"; + } + } + leaf target-port { + type leafref { + path "/topology/node/port/port-id"; + } + } + } + + grouping topology { + list node { + key "node-id"; + uses node; + } + list link { + key "link-id"; + uses link; + } + } + + /** + * Container/lists + */ + container topology { + uses topology; + } + +} diff --git a/manifests/deviceservice.yaml b/manifests/deviceservice.yaml index 171394f7c43b2447e898902c78d5276fe1bcbc7c..46c7557d9178d1bb2bc36eda13a088606f56cede 100644 --- a/manifests/deviceservice.yaml +++ b/manifests/deviceservice.yaml @@ -34,7 +34,7 @@ spec: - containerPort: 2020 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:2020"] diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml index 7f0bee9efc68e66c72487624241e763dccb2fc76..39acfd52330ae6b1c3034e61e793d68491086237 100644 --- a/manifests/monitoringservice.yaml +++ b/manifests/monitoringservice.yaml @@ -13,13 +13,14 @@ # limitations under the License. apiVersion: apps/v1 -kind: Deployment +kind: StatefulSet metadata: - name: monitoringservice + name: monitoringdb spec: selector: matchLabels: app: monitoringservice + serviceName: "monitoringservice" replicas: 1 template: metadata: @@ -32,35 +33,50 @@ spec: - name: metricsdb image: questdb/questdb ports: - - containerPort: 9000 - - containerPort: 9009 - - containerPort: 9003 + - name: http + containerPort: 9000 + protocol: TCP + - name: influxdb + containerPort: 9009 + protocol: TCP + - name: postgre + containerPort: 8812 + protocol: TCP env: - name: QDB_CAIRO_COMMIT_LAG value: "1000" - name: QDB_CAIRO_MAX_UNCOMMITTED_ROWS value: "100000" - readinessProbe: - exec: - command: ["curl", "-XGET", "localhost:9000"] - livenessProbe: - exec: - command: ["curl", "-XGET", "localhost:9003/metrics"] - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: 700m - memory: 1024Mi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: monitoringservice +spec: + selector: + matchLabels: + app: monitoringservice + replicas: 1 + template: + metadata: + labels: + app: monitoringservice + spec: + terminationGracePeriodSeconds: 5 + restartPolicy: Always + containers: - name: server image: registry.gitlab.com/teraflow-h2020/controller/monitoring:latest imagePullPolicy: Always ports: - - containerPort: 7070 + - name: grpc + containerPort: 7070 + protocol: TCP env: + - name: LOG_LEVEL + value: "INFO" - name: METRICSDB_HOSTNAME - value: "localhost" + value: "monitoringservice" - name: METRICSDB_ILP_PORT value: "9009" - name: METRICSDB_REST_PORT @@ -80,7 +96,6 @@ spec: limits: cpu: 700m memory: 1024Mi - --- apiVersion: v1 kind: Service @@ -95,7 +110,37 @@ spec: protocol: TCP port: 7070 targetPort: 7070 - - name: questdb + - name: http protocol: TCP port: 9000 - targetPort: 9000 \ No newline at end of file + targetPort: 9000 + - name: influxdb + protocol: TCP + port: 9009 + targetPort: 9009 + - name: postgre + protocol: TCP + port: 8812 + targetPort: 8812 + +--- +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: access-monitoring +spec: + podSelector: + matchLabels: + app: monitoringservice + ingress: + - from: [] + ports: + - port: 7070 + - port: 8812 + - from: + - podSelector: + matchLabels: + app: monitoringservice + ports: + - port: 9009 + - port: 9000 diff --git a/manifests/serviceservice.yaml b/manifests/serviceservice.yaml index 75832b94fa2a6ba97617641e7b249157508614bf..efe43fe229a7f7ba862b10a04d44c6e9de06b5fb 100644 --- a/manifests/serviceservice.yaml +++ b/manifests/serviceservice.yaml @@ -34,7 +34,7 @@ spec: - containerPort: 3030 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3030"] diff --git a/manifests/webuiservice.yaml b/manifests/webuiservice.yaml index 52fc75a9868001d50f7380cfe238fa344de27f6e..cac64a816075f1a0ad91a21c519463aa5cd8f973 100644 --- a/manifests/webuiservice.yaml +++ b/manifests/webuiservice.yaml @@ -35,12 +35,12 @@ spec: image: registry.gitlab.com/teraflow-h2020/controller/webui:latest imagePullPolicy: Always ports: - - containerPort: 8004 # TODO: define the real port + - containerPort: 8004 env: - name: LOG_LEVEL value: "DEBUG" - name: WEBUISERVICE_SERVICE_BASEURL_HTTP - value: "/webui" + value: "/webui/" readinessProbe: httpGet: path: /healthz/ready @@ -61,7 +61,7 @@ spec: cpu: 700m memory: 1024Mi - name: grafana - image: grafana/grafana:8.2.6 + image: grafana/grafana:8.5.11 imagePullPolicy: IfNotPresent ports: - containerPort: 3000 diff --git a/my_deploy.sh b/my_deploy.sh index 67a2e0558c25d767e14b635e6dd9174433827156..e70a12e1556ab06f6daa89c316c6a6ed61c4e059 100644 --- a/my_deploy.sh +++ b/my_deploy.sh @@ -1,13 +1,13 @@ # Set the URL of your local Docker registry where the images will be uploaded to. export TFS_REGISTRY_IMAGE="http://localhost:32000/tfs/" -# Set the list of components, separated by comas, you want to build images for, and deploy. +# Set the list of components, separated by spaces, you want to build images for, and deploy. # Supported components are: # context device automation policy service compute monitoring webui # interdomain slice pathcomp dlt -# dbscanserving opticalattackmitigator opticalcentralizedattackdetector +# dbscanserving opticalattackmitigator opticalattackdetector # l3_attackmitigator l3_centralizedattackdetector l3_distributedattackdetector -export TFS_COMPONENTS="context device automation service compute monitoring webui" +export TFS_COMPONENTS="context device automation monitoring pathcomp service slice compute webui" # Set the tag you want to use for your images. export TFS_IMAGE_TAG="dev" diff --git a/proto/context_policy.proto b/proto/context_policy.proto index 9fe25dec5205b66f6d622df2f9435c1321f7e45e..efad68df6c65481a3a8c21417bc62ed230673c44 100644 --- a/proto/context_policy.proto +++ b/proto/context_policy.proto @@ -22,7 +22,7 @@ import "policy.proto"; service ContextPolicyService { rpc ListPolicyRuleIds(context.Empty ) returns (policy.PolicyRuleIdList) {} rpc ListPolicyRules (context.Empty ) returns (policy.PolicyRuleList ) {} - rpc GetPolicyRule (policy.PolicyRuleId ) returns (policy.PolicyRuleBasic ) {} - rpc SetPolicyRule (policy.PolicyRuleBasic) returns (policy.PolicyRuleId ) {} + rpc GetPolicyRule (policy.PolicyRuleId ) returns (policy.PolicyRule ) {} + rpc SetPolicyRule (policy.PolicyRule ) returns (policy.PolicyRuleId ) {} rpc RemovePolicyRule (policy.PolicyRuleId ) returns (context.Empty ) {} } diff --git a/proto/monitoring.proto b/proto/monitoring.proto index 8b83afa47b49c130d37dcbcc1024f079ebc2a2fe..9be39db909d915b2a9b5d99b01841db028959543 100644 --- a/proto/monitoring.proto +++ b/proto/monitoring.proto @@ -19,24 +19,24 @@ import "context.proto"; import "kpi_sample_types.proto"; service MonitoringService { - rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} - rpc DeleteKpi (KpiId ) returns (context.Empty ) {} - rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} - rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} - rpc IncludeKpi (Kpi ) returns (context.Empty ) {} - rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} - rpc QueryKpiData (KpiQuery ) returns (KpiList ) {} - rpc SetKpiSubscription (SubsDescriptor ) returns (stream KpiList ) {} - rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} - rpc GetSubscriptions (context.Empty ) returns (SubsIDList ) {} - rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} - rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} - rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {} - rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} - rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} - rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} - rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} - rpc GetInstantKpi (KpiId ) returns (KpiList ) {} + rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final + rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final + rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final + rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final + rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final + rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final + rpc QueryKpiData (KpiQuery ) returns (KpiList ) {} // Not implemented + rpc SetKpiSubscription (SubsDescriptor ) returns (stream SubsResponse ) {} // Stable not final + rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} // Stable and final + rpc GetSubscriptions (context.Empty ) returns (SubsList ) {} // Stable and final + rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} // Stable and final + rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} // Stable not final + rpc GetAlarms (context.Empty ) returns (AlarmList ) {} // Stable and final + rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final + rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final + rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final + rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final + rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final } message KpiDescriptor { @@ -58,7 +58,7 @@ message MonitorKpiRequest { } message KpiQuery { - repeated KpiId kpi_id = 1; + KpiId kpi_id = 1; float monitoring_window_s = 2; float sampling_rate_s = 3; uint32 last_n_samples = 4; // used when you want something like "get the last N many samples @@ -99,7 +99,7 @@ message KpiValue { message KpiList { - repeated Kpi kpi_list = 1; + repeated Kpi kpi = 1; } message KpiDescriptorList { @@ -122,19 +122,19 @@ message SubscriptionID { message SubsResponse { SubscriptionID subs_id = 1; - repeated KpiList kpi_list = 2; + KpiList kpi_list = 2; } -message SubsIDList { - repeated SubscriptionID subs_list = 1; +message SubsList { + repeated SubsDescriptor subs_descriptor = 1; } message AlarmDescriptor { AlarmID alarm_id = 1; string alarm_description = 2; string name = 3; - repeated KpiId kpi_id = 4; - repeated KpiValueRange kpi_value_range = 5; + KpiId kpi_id = 4; + KpiValueRange kpi_value_range = 5; context.Timestamp timestamp = 6; } @@ -143,7 +143,7 @@ message AlarmID{ } message AlarmSubscription{ - AlarmID alarmID = 1; + AlarmID alarm_id = 1; float subscription_timeout_s = 2; float subscription_frequency_ms = 3; } @@ -151,10 +151,9 @@ message AlarmSubscription{ message AlarmResponse { AlarmID alarm_id = 1; string text = 2; - KpiValue kpi_value = 3; - context.Timestamp timestamp = 4; + KpiList kpi_list = 3; } -message AlarmIDList { - repeated AlarmID alarm_list = 1; +message AlarmList { + repeated AlarmDescriptor alarm_descriptor = 1; } diff --git a/proto/policy.proto b/proto/policy.proto index 0879389bf857df51b7f777fd21a4a249ff69682d..d8e51caea2231e21b982771e7a4d63f3db93471c 100644 --- a/proto/policy.proto +++ b/proto/policy.proto @@ -30,7 +30,7 @@ service PolicyService { rpc GetPolicyByServiceId (context.ServiceId) returns (PolicyRuleServiceList) {} } -enum RuleState { +enum PolicyRuleStateEnum { POLICY_UNDEFINED = 0; // Undefined rule state POLICY_FAILED = 1; // Rule failed POLICY_INSERTED = 2; // Rule is just inserted @@ -49,7 +49,8 @@ message PolicyRuleId { } message PolicyRuleState { - RuleState policyRuleState = 1; + PolicyRuleStateEnum policyRuleState = 1; + string policyRuleStateMessage = 2; } // Basic policy rule attributes @@ -83,6 +84,14 @@ message PolicyRuleDevice { repeated context.DeviceId deviceList = 2; } +// Wrapper policy rule object +message PolicyRule { + oneof policy_rule { + PolicyRuleService service = 1; + PolicyRuleDevice device = 2; + } +} + // A list of policy rule IDs message PolicyRuleIdList { repeated PolicyRuleId policyRuleIdList = 1; diff --git a/proto/policy_action.proto b/proto/policy_action.proto index 374b5975129353219902e270a521496e914b1625..8f681adf38f321aa06410bcb1bac26ea69fe14ec 100644 --- a/proto/policy_action.proto +++ b/proto/policy_action.proto @@ -18,7 +18,7 @@ package policy; // Action message PolicyRuleAction { PolicyRuleActionEnum action = 1; - repeated string parameters = 2; + repeated PolicyRuleActionConfig action_config = 2; } enum PolicyRuleActionEnum { @@ -27,3 +27,14 @@ enum PolicyRuleActionEnum { POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2; POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3; } + +// Action configuration +message PolicyRuleActionConfig { + string action_key = 1; + string action_value = 2; +} + +// message PolicyRuleAction { +// PolicyRuleActionEnum action = 1; +// repeated string parameters = 2; +// } \ No newline at end of file diff --git a/scripts/create_component.sh b/scripts/create_component.sh new file mode 100755 index 0000000000000000000000000000000000000000..17f6abc64140f88e0b8f09f548afdaf1f1362f6f --- /dev/null +++ b/scripts/create_component.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +COMPONENT_NAME=$1 +PROJECTDIR=`pwd` + +mkdir -p ${PROJECTDIR}/src/${COMPONENT_NAME} +mkdir -p ${PROJECTDIR}/src/${COMPONENT_NAME}/client +mkdir -p ${PROJECTDIR}/src/${COMPONENT_NAME}/service +mkdir -p ${PROJECTDIR}/src/${COMPONENT_NAME}/tests + +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/client/__init__.py +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/service/__init__.py +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/tests/__init__.py +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/.gitlab-ci.yml +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/__init__.py +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/Config.py +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/Dockerfile +touch ${PROJECTDIR}/src/${COMPONENT_NAME}/requirements.in + +cd ${PROJECTDIR}/src +python gitlab-ci.yml_generator.py -t latest forecaster + +cd ${PROJECTDIR}/src/${COMPONENT_NAME} +mv .gitlab-ci.yml gitlab-ci.yaml +${PROJECTDIR}/scripts/add_license_header_to_files.sh +mv gitlab-ci.yaml .gitlab-ci.yml diff --git a/scripts/dump_logs.sh b/scripts/dump_logs.sh new file mode 100755 index 0000000000000000000000000000000000000000..a6db945d245b832564353de71610bf720eb0acb8 --- /dev/null +++ b/scripts/dump_logs.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +mkdir -p tmp/exec_logs/$TFS_K8S_NAMESPACE/ +rm tmp/exec_logs/$TFS_K8S_NAMESPACE/* + +PODS=$(kubectl get pods --namespace $TFS_K8S_NAMESPACE --no-headers --output=custom-columns=":metadata.name") +for POD in $PODS; do + CONTAINERS=$(kubectl get pods --namespace $TFS_K8S_NAMESPACE $POD -o jsonpath='{.spec.containers[*].name}') + for CONTAINER in $CONTAINERS; do + kubectl --namespace $TFS_K8S_NAMESPACE logs pod/${POD} --container ${CONTAINER} \ + > tmp/exec_logs/$TFS_K8S_NAMESPACE/$POD\_\_$CONTAINER.log + done +done diff --git a/scripts/old/deploy_in_kubernetes.sh b/scripts/old/deploy_in_kubernetes.sh index 5e16120bb3b47e993e1d331ccdef3186380304ec..89f45a5484f95f065f6656249f3fb04bf507a782 100755 --- a/scripts/old/deploy_in_kubernetes.sh +++ b/scripts/old/deploy_in_kubernetes.sh @@ -81,7 +81,7 @@ for COMPONENT in $COMPONENTS; do if [ "$COMPONENT" == "automation" ] || [ "$COMPONENT" == "policy" ]; then docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG" else - docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/ > "$BUILD_LOG" + docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile . > "$BUILD_LOG" fi if [ -n "$REGISTRY_IMAGE" ]; then diff --git a/scripts/old/open_dashboard.sh b/scripts/old/open_dashboard.sh index a3864d2d04c5fb0b3220967f13c324cd554e7963..d0529a00921be896ae976c86d10d67139719de9c 100755 --- a/scripts/old/open_dashboard.sh +++ b/scripts/old/open_dashboard.sh @@ -18,8 +18,8 @@ K8S_NAMESPACE=${K8S_NAMESPACE:-'tfs'} -GRAFANA_IP=$(kubectl get service/webuiservice -n ${K8S_NAMESPACE} -o jsonpath='{.spec.clusterIP}') -GRAFANA_PORT=$(kubectl get service webuiservice-public --namespace $K8S_NAMESPACE -o 'jsonpath={.spec.ports[?(@.port==3000)].nodePort}') +GRAFANA_IP=$(kubectl get service/webuiservice -n ${TFS_K8S_NAMESPACE} -o jsonpath='{.spec.clusterIP}') +GRAFANA_PORT=3000 #$(kubectl get service webuiservice --namespace $TFS_K8S_NAMESPACE -o 'jsonpath={.spec.ports[?(@.port==3000)].nodePort}') URL=http://${GRAFANA_IP}:${GRAFANA_PORT} echo Opening Dashboard on URL ${URL} diff --git a/scripts/old/open_webui.sh b/scripts/old/open_webui.sh index 2d4659bf6080a989774050b7ff36ddb88ba41eae..d539c1970adb7882c9621fc909acf21c2dde743a 100755 --- a/scripts/old/open_webui.sh +++ b/scripts/old/open_webui.sh @@ -23,6 +23,58 @@ WEBUI_PORT=8004 # GRAFANA_PORT=$(kubectl get service ${WEBUI_SERVICE_NAME} --namespace $K8S_NAMESPACE -o 'jsonpath={.spec.ports[?(@.port==3000)].nodePort}') GRAFANA_PORT=3000 +echo "Configuring WebUI DataStores and Dashboards..." +sleep 3 +INFLUXDB_HOST="monitoringservice" +INFLUXDB_PORT=$(kubectl --namespace $TFS_K8S_NAMESPACE get service/monitoringservice -o jsonpath='{.spec.ports[?(@.name=="influxdb")].port}') +INFLUXDB_URL="http://${INFLUXDB_HOST}:${INFLUXDB_PORT}" +INFLUXDB_USER=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_USER}' | base64 --decode) +INFLUXDB_PASSWORD=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_ADMIN_PASSWORD}' | base64 --decode) +INFLUXDB_DATABASE=$(kubectl --namespace $TFS_K8S_NAMESPACE get secrets influxdb-secrets -o jsonpath='{.data.INFLUXDB_DB}' | base64 --decode) +# Exposed through the ingress controller "tfs-ingress" +# GRAFANA_HOSTNAME="127.0.0.1" +# GRAFANA_PORT="80" +# GRAFANA_BASEURL="/grafana" +# Default Grafana credentials +GRAFANA_USERNAME="admin" +GRAFANA_PASSWORD="admin" +# Default Grafana API URL +GRAFANA_URL_DEFAULT=http://${GRAFANA_USERNAME}:${GRAFANA_PASSWORD}@${WEBUI_IP}:${GRAFANA_PORT} #"http://${GRAFANA_USERNAME}:${GRAFANA_PASSWORD}@${GRAFANA_HOSTNAME}:${GRAFANA_PORT}${GRAFANA_BASEURL}" +# Updated Grafana API URL +GRAFANA_URL_UPDATED=http://${GRAFANA_USERNAME}:${TFS_GRAFANA_PASSWORD}@${WEBUI_IP}:${GRAFANA_PORT} #"http://${GRAFANA_USERNAME}:${TFS_GRAFANA_PASSWORD}@${GRAFANA_HOSTNAME}:${GRAFANA_PORT}${GRAFANA_BASEURL}" +echo "Connecting to grafana at URL: ${GRAFANA_URL_DEFAULT}..." +# Configure Grafana Admin Password +# Ref: https://grafana.com/docs/grafana/latest/http_api/user/#change-password +curl -X PUT -H "Content-Type: application/json" -d '{ + "oldPassword": "'${GRAFANA_PASSWORD}'", + "newPassword": "'${TFS_GRAFANA_PASSWORD}'", + "confirmNew" : "'${TFS_GRAFANA_PASSWORD}'" +}' ${GRAFANA_URL_DEFAULT}/api/user/password +echo +# Create InfluxDB DataSource +# Ref: https://grafana.com/docs/grafana/latest/http_api/data_source/ +curl -X POST -H "Content-Type: application/json" -d '{ + "type" : "influxdb", + "name" : "InfluxDB", + "url" : "'"$INFLUXDB_URL"'", + "access" : "proxy", + "basicAuth": false, + "user" : "'"$INFLUXDB_USER"'", + "password" : "'"$INFLUXDB_PASSWORD"'", + "isDefault": true, + "database" : "'"$INFLUXDB_DATABASE"'" +}' ${GRAFANA_URL_UPDATED}/api/datasources +echo +# Create Monitoring Dashboard +# Ref: https://grafana.com/docs/grafana/latest/http_api/dashboard/ +curl -X POST -H "Content-Type: application/json" \ +-d '@src/webui/grafana_dashboard.json' \ +${GRAFANA_URL_UPDATED}/api/dashboards/db +echo +DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tf-l3-monit" +DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') +curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + # Open WebUI UI_URL="http://${WEBUI_IP}:${WEBUI_PORT}" echo "Opening web UI on URL ${UI_URL}" diff --git a/scripts/run_tests_locally-context.sh b/scripts/run_tests_locally-context.sh index a9e601208aa9259219708a5e1ca770232e44faa6..7033fcb01a468731b498708096a80fac8d9a9a85 100755 --- a/scripts/run_tests_locally-context.sh +++ b/scripts/run_tests_locally-context.sh @@ -13,19 +13,31 @@ # See the License for the specific language governing permissions and # limitations under the License. +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +export TFS_K8S_HOSTNAME="tfs-vm" + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## PROJECTDIR=`pwd` cd $PROJECTDIR/src RCFILE=$PROJECTDIR/coverage/.coveragerc -K8S_NAMESPACE="tf-dev" -K8S_HOSTNAME="kubernetes-master" - -kubectl --namespace $K8S_NAMESPACE expose deployment contextservice --port=6379 --name=redis-tests --type=NodePort -export REDIS_SERVICE_HOST=$(kubectl get node $K8S_HOSTNAME -o 'jsonpath={.status.addresses[?(@.type=="InternalIP")].address}') -export REDIS_SERVICE_PORT=$(kubectl get service redis-tests --namespace $K8S_NAMESPACE -o 'jsonpath={.spec.ports[?(@.port==6379)].nodePort}') +kubectl --namespace $TFS_K8S_NAMESPACE expose deployment contextservice --name=redis-tests --port=6379 --type=NodePort +#export REDIS_SERVICE_HOST=$(kubectl --namespace $TFS_K8S_NAMESPACE get service redis-tests -o 'jsonpath={.spec.clusterIP}') +export REDIS_SERVICE_HOST=$(kubectl get node $TFS_K8S_HOSTNAME -o 'jsonpath={.status.addresses[?(@.type=="InternalIP")].address}') +export REDIS_SERVICE_PORT=$(kubectl --namespace $TFS_K8S_NAMESPACE get service redis-tests -o 'jsonpath={.spec.ports[?(@.port==6379)].nodePort}') # Run unitary tests and analyze coverage of code at same time -coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ +coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose --maxfail=1 \ context/tests/test_unitary.py + +kubectl --namespace $TFS_K8S_NAMESPACE delete service redis-tests diff --git a/scripts/run_tests_locally-service.sh b/scripts/run_tests_locally-service.sh index 8a2a8d0be1d1960c6197a67e471ae29abba501a7..8816b9faa24e55e486a54852632fdb8e00db1d04 100755 --- a/scripts/run_tests_locally-service.sh +++ b/scripts/run_tests_locally-service.sh @@ -21,4 +21,5 @@ RCFILE=$PROJECTDIR/coverage/.coveragerc # Run unitary tests and analyze coverage of code at same time coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ + service/tests/test_unitary_task_scheduler.py \ service/tests/test_unitary.py diff --git a/scripts/show_logs_monitoring.sh b/scripts/show_logs_monitoring.sh index bd37d0d142f76d532219f1dcdcbd229914d3b0b5..520a9da1c652553eb90acd083caf5724275f4efe 100755 --- a/scripts/show_logs_monitoring.sh +++ b/scripts/show_logs_monitoring.sh @@ -24,4 +24,4 @@ export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} # Automated steps start here ######################################################################################################################## -kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/monitoringservice -c server +kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/monitoringserver diff --git a/scripts/show_logs_slice.sh b/scripts/show_logs_slice.sh new file mode 100755 index 0000000000000000000000000000000000000000..c7bc0b69588307092b22ea3c600669359f04de99 --- /dev/null +++ b/scripts/show_logs_slice.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +######################################################################################################################## +# Define your deployment settings here +######################################################################################################################## + +# If not already set, set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"} + +######################################################################################################################## +# Automated steps start here +######################################################################################################################## + +kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/sliceservice diff --git a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java index 773c99de6d94b5f8806a8a354b2371c0a6748f9f..54255cf78481bbaa1ecdd81a097a335292d81ed5 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java @@ -50,33 +50,34 @@ public class AutomationServiceImpl implements AutomationService { device -> { final var id = deviceId; - if (!device.isEnabled()) { - LOGGER.infof(MESSAGE, device); - - final var initialConfiguration = - deviceService.getInitialConfiguration(device.getDeviceId()); - - device.enableDevice(); - LOGGER.infof("Enabled device [%s]", id); - - initialConfiguration - .subscribe() - .with( - deviceConfig -> { - device.setDeviceConfiguration(deviceConfig); - final var configuredDeviceIdUni = deviceService.configureDevice(device); - - configuredDeviceIdUni - .subscribe() - .with( - configuredDeviceId -> - LOGGER.infof( - "Device [%s] has been enabled and configured successfully with %s.\n", - id, deviceConfig)); - }); - } else { - LOGGER.infof("%s has been already enabled. Ignoring...", device); + if (device.isEnabled()) { + LOGGER.warnf("%s has already been enabled. Ignoring...", device); + return; } + + LOGGER.infof(MESSAGE, device); + + final var initialConfiguration = + deviceService.getInitialConfiguration(device.getDeviceId()); + + device.enableDevice(); + LOGGER.infof("Enabled device [%s]", id); + + initialConfiguration + .subscribe() + .with( + deviceConfig -> { + device.setDeviceConfiguration(deviceConfig); + final var configuredDeviceIdUni = deviceService.configureDevice(device); + + configuredDeviceIdUni + .subscribe() + .with( + configuredDeviceId -> + LOGGER.infof( + "Device [%s] has been successfully enabled and configured with %s.\n", + id, deviceConfig)); + }); }); return deserializedDeviceUni; @@ -92,13 +93,23 @@ public class AutomationServiceImpl implements AutomationService { device -> { final var id = deviceId; + if (device.isDisabled()) { + LOGGER.warnf("%s has already been disabled. Ignoring...", device); + return; + } + + device.disableDevice(); + LOGGER.infof("Disabled device [%s]", id); + LOGGER.infof(MESSAGE, device); final var empty = deviceService.deleteDevice(device.getDeviceId()); empty .subscribe() - .with(emptyMessage -> LOGGER.infof("Device [%s] has been deleted.\n", id)); + .with( + emptyMessage -> + LOGGER.infof("Device [%s] has been successfully deleted.\n", id)); }); return deserializedDeviceUni; @@ -114,6 +125,11 @@ public class AutomationServiceImpl implements AutomationService { device -> { final var id = deviceId; + if (!device.isEnabled()) { + LOGGER.warnf("Cannot update disabled device %s. Ignoring...", device); + return; + } + LOGGER.infof(MESSAGE, device); device.setDeviceConfiguration(deviceConfig); final var updatedDeviceIdUni = deviceService.configureDevice(device); @@ -123,7 +139,7 @@ public class AutomationServiceImpl implements AutomationService { .with( configuredDeviceId -> LOGGER.infof( - "Device [%s] has been updated successfully with %s.\n", + "Device [%s] has been successfully updated with %s.\n", id, deviceConfig)); }); diff --git a/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java b/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java index c4d636b6b4dca7241808ade421f32a77861e4d3f..2fc3a3356456b3c1bc55137f686a7e82570a3171 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java +++ b/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java @@ -78,9 +78,11 @@ public class ContextSubscriber { automationService.deleteDevice(deviceEvent.getDeviceId()); break; case UPDATE: - LOGGER.infof("Received %s for device [%s]", event, deviceId); - automationService.updateDevice( - deviceEvent.getDeviceId(), deviceEvent.getDeviceConfig().orElse(null)); + LOGGER.warnf( + "Received %s for device [%s]. " + + "No automation action on an already updated device", + event, deviceId); + break; case UNDEFINED: logWarningMessage(event, deviceId, eventType); break; diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java index 77bd3ca5c861713b43faf178c6450e35e6032b3c..1e5563917625a9679feb9e9491990885cc4a3c22 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java @@ -61,10 +61,18 @@ public class Device { return deviceOperationalStatus == DeviceOperationalStatus.ENABLED; } + public boolean isDisabled() { + return deviceOperationalStatus == DeviceOperationalStatus.DISABLED; + } + public void enableDevice() { this.deviceOperationalStatus = DeviceOperationalStatus.ENABLED; } + public void disableDevice() { + this.deviceOperationalStatus = DeviceOperationalStatus.DISABLED; + } + public String getDeviceId() { return deviceId; } diff --git a/src/common/DeviceTypes.py b/src/common/DeviceTypes.py index 4d67ff6615227f0d9e7d82e2f69b39d72011a75c..08f18dd400296baf373f61901493aa0427e4cf1f 100644 --- a/src/common/DeviceTypes.py +++ b/src/common/DeviceTypes.py @@ -15,14 +15,23 @@ from enum import Enum class DeviceTypeEnum(Enum): - EMULATED_DATACENTER = 'emu-datacenter' - EMULATED_OPEN_LINE_SYSTEM = 'emu-open-line-system' - EMULATED_PACKET_ROUTER = 'emu-packet-router' - DATACENTER = 'datacenter' - MICROVAWE_RADIO_SYSTEM = 'microwave-radio-system' - OPTICAL_ROADM = 'optical-roadm' - OPTICAL_TRANDPONDER = 'optical-trandponder' - OPEN_LINE_SYSTEM = 'open-line-system' - PACKET_ROUTER = 'packet-router' - PACKET_SWITCH = 'packet-switch' - P4_SWITCH = 'p4-switch' + + # Emulated device types + EMULATED_DATACENTER = 'emu-datacenter' + EMULATED_MICROVAWE_RADIO_SYSTEM = 'emu-microwave-radio-system' + EMULATED_OPEN_LINE_SYSTEM = 'emu-open-line-system' + EMULATED_OPTICAL_ROADM = 'emu-optical-roadm' + EMULATED_OPTICAL_TRANSPONDER = 'emu-optical-transponder' + EMULATED_P4_SWITCH = 'emu-p4-switch' + EMULATED_PACKET_ROUTER = 'emu-packet-router' + EMULATED_PACKET_SWITCH = 'emu-packet-switch' + + # Real device types + DATACENTER = 'datacenter' + MICROVAWE_RADIO_SYSTEM = 'microwave-radio-system' + OPEN_LINE_SYSTEM = 'open-line-system' + OPTICAL_ROADM = 'optical-roadm' + OPTICAL_TRANSPONDER = 'optical-transponder' + P4_SWITCH = 'p4-switch' + PACKET_ROUTER = 'packet-router' + PACKET_SWITCH = 'packet-switch' diff --git a/src/common/rpc_method_wrapper/ServiceExceptions.py b/src/common/rpc_method_wrapper/ServiceExceptions.py index f4f0a64cad79c96dc069bd37e8d2c2be5f011c53..e8d5c79acca19117fca53ec216166c01d3f0781d 100644 --- a/src/common/rpc_method_wrapper/ServiceExceptions.py +++ b/src/common/rpc_method_wrapper/ServiceExceptions.py @@ -56,3 +56,11 @@ class OperationFailedException(ServiceException): details = 'Operation({:s}) failed'.format(str(operation)) super().__init__(grpc.StatusCode.INTERNAL, details, extra_details=extra_details) + +class NotImplementedException(ServiceException): + def __init__( + self, operation : str, extra_details : Union[str, Iterable[str]] = None + ) -> None: + + details = 'Operation({:s}) not implemented'.format(str(operation)) + super().__init__(grpc.StatusCode.UNIMPLEMENTED, details, extra_details=extra_details) diff --git a/src/common/tests/EventTools.py b/src/common/tests/EventTools.py index ceff4d60e597690b29d5f1bcac894c081eb88a56..d0f82841395ea77a7c2483099458760769f8c535 100644 --- a/src/common/tests/EventTools.py +++ b/src/common/tests/EventTools.py @@ -15,7 +15,7 @@ import json, logging from typing import Dict, List, Tuple from common.proto.context_pb2 import ( - ConnectionEvent, ContextEvent, DeviceEvent, EventTypeEnum, LinkEvent, ServiceEvent, TopologyEvent) + ConnectionEvent, ContextEvent, DeviceEvent, EventTypeEnum, LinkEvent, ServiceEvent, SliceEvent, TopologyEvent) from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.EventsCollector import EventsCollector @@ -32,6 +32,7 @@ CLASSNAME_CONTEXT_EVENT = class_to_classname(ContextEvent) CLASSNAME_TOPOLOGY_EVENT = class_to_classname(TopologyEvent) CLASSNAME_DEVICE_EVENT = class_to_classname(DeviceEvent) CLASSNAME_LINK_EVENT = class_to_classname(LinkEvent) +CLASSNAME_SLICE_EVENT = class_to_classname(SliceEvent) CLASSNAME_SERVICE_EVENT = class_to_classname(ServiceEvent) CLASSNAME_CONNECTION_EVENT = class_to_classname(ConnectionEvent) @@ -40,6 +41,7 @@ EVENT_CLASS_NAME__TO__ENTITY_ID_SELECTOR = { CLASSNAME_TOPOLOGY_EVENT : lambda event: event.topology_id, CLASSNAME_DEVICE_EVENT : lambda event: event.device_id, CLASSNAME_LINK_EVENT : lambda event: event.link_id, + CLASSNAME_SLICE_EVENT : lambda event: event.slice_id, CLASSNAME_SERVICE_EVENT : lambda event: event.service_id, CLASSNAME_CONNECTION_EVENT: lambda event: event.connection_id, } diff --git a/src/common/tools/mutex_queues/MutexQueues.py b/src/common/tools/mutex_queues/MutexQueues.py new file mode 100644 index 0000000000000000000000000000000000000000..c3ab760f281c73ae2f308044d67b2d2b81aef142 --- /dev/null +++ b/src/common/tools/mutex_queues/MutexQueues.py @@ -0,0 +1,78 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +# MutexQueues: +# ------------ +# This class enables to schedule and serialize operations concurrently issued +# over a number of resources. For instance, when multiple components want to +# configure devices through the Device component, configuration operations +# have to be serialized to prevent data corruptions, and race conditions, etc. +# Usage Example: +# class Servicer(): +# def __init__(self): +# # init other stuff +# self.drivers = dict() +# self.mutex_queues = MutexQueues() +# +# def configure_device(self, device_uuid, settings): +# self.mutex_queues.wait_my_turn(device_uuid) +# driver = self.drivers.get(device_uuid) +# if driver is None: +# driver = Driver(device_uuid) +# self.drivers[device_uuid] = driver +# driver.configure(settings) +# self.mutex_queues.signal_done(device_uuid) + +import threading +from queue import Queue +from typing import Dict + +class MutexQueues: + def __init__(self) -> None: + # lock to protect dictionary updates + self.lock = threading.Lock() + + # dictionaty of queues of mutexes: queue_name => queue[mutex] + # first mutex is the running one + self.mutex_queues : Dict[str, Queue[threading.Event]] = dict() + + def wait_my_turn(self, queue_name : str) -> None: + # create my mutex and enqueue it + mutex = threading.Event() + with self.lock: + queue : Queue = self.mutex_queues.setdefault(queue_name, Queue()) + first_in_queue = (queue.qsize() == 0) + queue.put_nowait(mutex) + + # if I'm the first in the queue upon addition, means there are no running tasks + # directly return without waiting + if first_in_queue: return + + # otherwise, wait for my turn in the queue + mutex.wait() + + def signal_done(self, queue_name : str) -> None: + # I'm done with my work + with self.lock: + queue : Queue = self.mutex_queues.setdefault(queue_name, Queue()) + + # remove muself from the queue + queue.get_nowait() + + # if there are no other tasks queued, return + if queue.qsize() == 0: return + + # otherwise, signal the next task in the queue to start + next_mutex : threading.Event = queue.queue[0] + next_mutex.set() diff --git a/src/service/service/database/__init__.py b/src/common/tools/mutex_queues/__init__.py similarity index 76% rename from src/service/service/database/__init__.py rename to src/common/tools/mutex_queues/__init__.py index 926623031b92b7dc7ad545b5f5da369b7ab79856..70a33251242c51f49140e596b8208a19dd5245f7 100644 --- a/src/service/service/database/__init__.py +++ b/src/common/tools/mutex_queues/__init__.py @@ -12,5 +12,3 @@ # See the License for the specific language governing permissions and # limitations under the License. -# In-Memory database with a simplified representation of Context Database focused on the Service model. -# Used as an internal data cache, for message validation, and message formatting purposes. diff --git a/src/common/tools/object_factory/Service.py b/src/common/tools/object_factory/Service.py index 51f75e6dbe5e430330e697da772d65703f7568c7..62f3dcbda148f1c624265ae7d76b0c17f5d36959 100644 --- a/src/common/tools/object_factory/Service.py +++ b/src/common/tools/object_factory/Service.py @@ -44,10 +44,20 @@ def json_service( def json_service_l3nm_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], - config_rules : List[Dict] = [] + config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_UUID ): return json_service( - service_uuid, ServiceTypeEnum.SERVICETYPE_L3NM, context_id=json_context_id(DEFAULT_CONTEXT_UUID), + service_uuid, ServiceTypeEnum.SERVICETYPE_L3NM, context_id=json_context_id(context_uuid), + status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, + config_rules=config_rules) + +def json_service_tapi_planned( + service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], + config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_UUID + ): + + return json_service( + service_uuid, ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE, context_id=json_context_id(context_uuid), status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, config_rules=config_rules) diff --git a/src/compute/service/__main__.py b/src/compute/service/__main__.py index 345b2fdd6950ecda802e8bd1c86e1421b5c60d84..e80681e177f0f0def3dbe75d76e7e65ceaca1e87 100644 --- a/src/compute/service/__main__.py +++ b/src/compute/service/__main__.py @@ -39,6 +39,8 @@ def main(): wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) signal.signal(signal.SIGINT, signal_handler) diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py index d432e5605cfebaa01c2a8faf0cbffcff110d7dbe..a6c8f27720bee0286995a9104f9599dbe99405e7 100644 --- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py +++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py @@ -17,38 +17,61 @@ DEFAULT_ADDRESS_FAMILIES = ['IPV4'] DEFAULT_BGP_AS = 65000 DEFAULT_BGP_ROUTE_TARGET = '{:d}:{:d}'.format(DEFAULT_BGP_AS, 333) +# TODO: improve definition of bearer mappings + # Bearer mappings: # device_uuid:endpoint_uuid => ( -# device_uuid, endpoint_uuid, router_id, route_distinguisher, sub_if_index, address_ip, address_prefix) +# device_uuid, endpoint_uuid, router_id, route_dist, sub_if_index, +# address_ip, address_prefix, remote_router, circuit_id) + BEARER_MAPPINGS = { - 'R1-EMU:13/1/2': ('R1-EMU', '13/1/2', '10.10.10.1', '65000:100', 400, '3.3.2.1', 24), - 'R2-EMU:13/1/2': ('R2-EMU', '13/1/2', '12.12.12.1', '65000:120', 450, '3.4.2.1', 24), - 'R3-EMU:13/1/2': ('R3-EMU', '13/1/2', '20.20.20.1', '65000:200', 500, '3.3.1.1', 24), - 'R4-EMU:13/1/2': ('R4-EMU', '13/1/2', '22.22.22.1', '65000:220', 550, '3.4.1.1', 24), - - 'R1@D1:3/1': ('R1@D1', '3/1', '10.0.1.1', '65001:101', 100, '1.1.3.1', 24), - 'R1@D1:3/2': ('R1@D1', '3/2', '10.0.1.1', '65001:101', 100, '1.1.3.2', 24), - 'R1@D1:3/3': ('R1@D1', '3/3', '10.0.1.1', '65001:101', 100, '1.1.3.3', 24), - 'R2@D1:3/1': ('R2@D1', '3/1', '10.0.1.2', '65001:102', 100, '1.2.3.1', 24), - 'R2@D1:3/2': ('R2@D1', '3/2', '10.0.1.2', '65001:102', 100, '1.2.3.2', 24), - 'R2@D1:3/3': ('R2@D1', '3/3', '10.0.1.2', '65001:102', 100, '1.2.3.3', 24), - 'R3@D1:3/1': ('R3@D1', '3/1', '10.0.1.3', '65001:103', 100, '1.3.3.1', 24), - 'R3@D1:3/2': ('R3@D1', '3/2', '10.0.1.3', '65001:103', 100, '1.3.3.2', 24), - 'R3@D1:3/3': ('R3@D1', '3/3', '10.0.1.3', '65001:103', 100, '1.3.3.3', 24), - 'R4@D1:3/1': ('R4@D1', '3/1', '10.0.1.4', '65001:104', 100, '1.4.3.1', 24), - 'R4@D1:3/2': ('R4@D1', '3/2', '10.0.1.4', '65001:104', 100, '1.4.3.2', 24), - 'R4@D1:3/3': ('R4@D1', '3/3', '10.0.1.4', '65001:104', 100, '1.4.3.3', 24), - - 'R1@D2:3/1': ('R1@D2', '3/1', '10.0.2.1', '65002:101', 100, '2.1.3.1', 24), - 'R1@D2:3/2': ('R1@D2', '3/2', '10.0.2.1', '65002:101', 100, '2.1.3.2', 24), - 'R1@D2:3/3': ('R1@D2', '3/3', '10.0.2.1', '65002:101', 100, '2.1.3.3', 24), - 'R2@D2:3/1': ('R2@D2', '3/1', '10.0.2.2', '65002:102', 100, '2.2.3.1', 24), - 'R2@D2:3/2': ('R2@D2', '3/2', '10.0.2.2', '65002:102', 100, '2.2.3.2', 24), - 'R2@D2:3/3': ('R2@D2', '3/3', '10.0.2.2', '65002:102', 100, '2.2.3.3', 24), - 'R3@D2:3/1': ('R3@D2', '3/1', '10.0.2.3', '65002:103', 100, '2.3.3.1', 24), - 'R3@D2:3/2': ('R3@D2', '3/2', '10.0.2.3', '65002:103', 100, '2.3.3.2', 24), - 'R3@D2:3/3': ('R3@D2', '3/3', '10.0.2.3', '65002:103', 100, '2.3.3.3', 24), - 'R4@D2:3/1': ('R4@D2', '3/1', '10.0.2.4', '65002:104', 100, '2.4.3.1', 24), - 'R4@D2:3/2': ('R4@D2', '3/2', '10.0.2.4', '65002:104', 100, '2.4.3.2', 24), - 'R4@D2:3/3': ('R4@D2', '3/3', '10.0.2.4', '65002:104', 100, '2.4.3.3', 24), + # OFC'22 + 'R1-EMU:13/1/2': ('R1-EMU', '13/1/2', '10.10.10.1', '65000:100', 400, '3.3.2.1', 24, None, None), + 'R2-EMU:13/1/2': ('R2-EMU', '13/1/2', '12.12.12.1', '65000:120', 450, '3.4.2.1', 24, None, None), + 'R3-EMU:13/1/2': ('R3-EMU', '13/1/2', '20.20.20.1', '65000:200', 500, '3.3.1.1', 24, None, None), + 'R4-EMU:13/1/2': ('R4-EMU', '13/1/2', '22.22.22.1', '65000:220', 550, '3.4.1.1', 24, None, None), + + # OECC/PSC'22 - domain 1 + 'R1@D1:3/1' : ('R1@D1', '3/1', '10.0.1.1', '65001:101', 100, '1.1.3.1', 24, None, None), + 'R1@D1:3/2' : ('R1@D1', '3/2', '10.0.1.1', '65001:101', 100, '1.1.3.2', 24, None, None), + 'R1@D1:3/3' : ('R1@D1', '3/3', '10.0.1.1', '65001:101', 100, '1.1.3.3', 24, None, None), + 'R2@D1:3/1' : ('R2@D1', '3/1', '10.0.1.2', '65001:102', 100, '1.2.3.1', 24, None, None), + 'R2@D1:3/2' : ('R2@D1', '3/2', '10.0.1.2', '65001:102', 100, '1.2.3.2', 24, None, None), + 'R2@D1:3/3' : ('R2@D1', '3/3', '10.0.1.2', '65001:102', 100, '1.2.3.3', 24, None, None), + 'R3@D1:3/1' : ('R3@D1', '3/1', '10.0.1.3', '65001:103', 100, '1.3.3.1', 24, None, None), + 'R3@D1:3/2' : ('R3@D1', '3/2', '10.0.1.3', '65001:103', 100, '1.3.3.2', 24, None, None), + 'R3@D1:3/3' : ('R3@D1', '3/3', '10.0.1.3', '65001:103', 100, '1.3.3.3', 24, None, None), + 'R4@D1:3/1' : ('R4@D1', '3/1', '10.0.1.4', '65001:104', 100, '1.4.3.1', 24, None, None), + 'R4@D1:3/2' : ('R4@D1', '3/2', '10.0.1.4', '65001:104', 100, '1.4.3.2', 24, None, None), + 'R4@D1:3/3' : ('R4@D1', '3/3', '10.0.1.4', '65001:104', 100, '1.4.3.3', 24, None, None), + + # OECC/PSC'22 - domain 2 + 'R1@D2:3/1' : ('R1@D2', '3/1', '10.0.2.1', '65002:101', 100, '2.1.3.1', 24, None, None), + 'R1@D2:3/2' : ('R1@D2', '3/2', '10.0.2.1', '65002:101', 100, '2.1.3.2', 24, None, None), + 'R1@D2:3/3' : ('R1@D2', '3/3', '10.0.2.1', '65002:101', 100, '2.1.3.3', 24, None, None), + 'R2@D2:3/1' : ('R2@D2', '3/1', '10.0.2.2', '65002:102', 100, '2.2.3.1', 24, None, None), + 'R2@D2:3/2' : ('R2@D2', '3/2', '10.0.2.2', '65002:102', 100, '2.2.3.2', 24, None, None), + 'R2@D2:3/3' : ('R2@D2', '3/3', '10.0.2.2', '65002:102', 100, '2.2.3.3', 24, None, None), + 'R3@D2:3/1' : ('R3@D2', '3/1', '10.0.2.3', '65002:103', 100, '2.3.3.1', 24, None, None), + 'R3@D2:3/2' : ('R3@D2', '3/2', '10.0.2.3', '65002:103', 100, '2.3.3.2', 24, None, None), + 'R3@D2:3/3' : ('R3@D2', '3/3', '10.0.2.3', '65002:103', 100, '2.3.3.3', 24, None, None), + 'R4@D2:3/1' : ('R4@D2', '3/1', '10.0.2.4', '65002:104', 100, '2.4.3.1', 24, None, None), + 'R4@D2:3/2' : ('R4@D2', '3/2', '10.0.2.4', '65002:104', 100, '2.4.3.2', 24, None, None), + 'R4@D2:3/3' : ('R4@D2', '3/3', '10.0.2.4', '65002:104', 100, '2.4.3.3', 24, None, None), + + # ECOC'22 + 'DC1-GW:CS1-GW1': ('CS1-GW1', '10/1', '5.5.1.1', None, 0, None, None, '5.5.2.1', 111), + 'DC1-GW:CS1-GW2': ('CS1-GW2', '10/1', '5.5.1.2', None, 0, None, None, '5.5.2.2', 222), + 'DC2-GW:CS2-GW1': ('CS2-GW1', '10/1', '5.5.2.1', None, 0, None, None, '5.5.1.1', 111), + 'DC2-GW:CS2-GW2': ('CS2-GW2', '10/1', '5.5.2.2', None, 0, None, None, '5.5.1.2', 222), + + # NetworkX'22 + 'R1:1/2': ('R1', '1/2', '5.1.1.2', None, 0, None, None, None, None), + 'R1:1/3': ('R1', '1/3', '5.1.1.3', None, 0, None, None, None, None), + 'R2:1/2': ('R2', '1/2', '5.2.1.2', None, 0, None, None, None, None), + 'R2:1/3': ('R2', '1/3', '5.2.1.3', None, 0, None, None, None, None), + 'R3:1/2': ('R3', '1/2', '5.3.1.2', None, 0, None, None, None, None), + 'R3:1/3': ('R3', '1/3', '5.3.1.3', None, 0, None, None, None, None), + 'R4:1/2': ('R4', '1/2', '5.4.1.2', None, 0, None, None, None, None), + 'R4:1/3': ('R4', '1/3', '5.4.1.3', None, 0, None, None, None, None), } diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py index c77d714a94fa8d2d4ee9cd2c3db06949665a489c..7e050289f19b93dc710185c2b29b326bbfd156d2 100644 --- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py +++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py @@ -16,12 +16,11 @@ import logging from flask import request from flask.json import jsonify from flask_restful import Resource -from common.Constants import DEFAULT_CONTEXT_UUID -from common.proto.context_pb2 import ServiceId, ServiceStatusEnum, SliceStatusEnum +from common.proto.context_pb2 import SliceStatusEnum from context.client.ContextClient import ContextClient -from service.client.ServiceClient import ServiceClient +from slice.client.SliceClient import SliceClient from .tools.Authentication import HTTP_AUTH -from .tools.ContextMethods import get_service, get_slice +from .tools.ContextMethods import get_slice from .tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR LOGGER = logging.getLogger(__name__) @@ -32,31 +31,22 @@ class L2VPN_Service(Resource): LOGGER.debug('VPN_Id: {:s}'.format(str(vpn_id))) LOGGER.debug('Request: {:s}'.format(str(request))) - response = jsonify({}) try: context_client = ContextClient() - target = get_service(context_client, vpn_id) - if target is not None: - if target.service_id.service_uuid.uuid != vpn_id: # pylint: disable=no-member - raise Exception('Service retrieval failed. Wrong Service Id was returned') - service_ready_status = ServiceStatusEnum.SERVICESTATUS_ACTIVE - service_status = target.service_status.service_status # pylint: disable=no-member - response.status_code = HTTP_OK if service_status == service_ready_status else HTTP_GATEWAYTIMEOUT - return response - target = get_slice(context_client, vpn_id) - if target is not None: - if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member - raise Exception('Slice retrieval failed. Wrong Slice Id was returned') - slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE - slice_status = target.slice_status.slice_status # pylint: disable=no-member - response.status_code = HTTP_OK if slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT - return response + if target is None: + raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) - raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) + if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member + raise Exception('Slice retrieval failed. Wrong Slice Id was returned') + + slice_ready_status = SliceStatusEnum.SLICESTATUS_ACTIVE + slice_status = target.slice_status.slice_status # pylint: disable=no-member + response = jsonify({}) + response.status_code = HTTP_OK if slice_status == slice_ready_status else HTTP_GATEWAYTIMEOUT except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Something went wrong Retrieving VPN({:s})'.format(str(request))) + LOGGER.exception('Something went wrong Retrieving VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) response.status_code = HTTP_SERVERERROR return response @@ -66,18 +56,21 @@ class L2VPN_Service(Resource): LOGGER.debug('VPN_Id: {:s}'.format(str(vpn_id))) LOGGER.debug('Request: {:s}'.format(str(request))) - # pylint: disable=no-member - service_id_request = ServiceId() - service_id_request.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID - service_id_request.service_uuid.uuid = vpn_id - try: - service_client = ServiceClient() - service_client.DeleteService(service_id_request) + context_client = ContextClient() + + target = get_slice(context_client, vpn_id) + if target is None: + LOGGER.warning('VPN({:s}) not found in database. Nothing done.'.format(str(vpn_id))) + else: + if target.slice_id.slice_uuid.uuid != vpn_id: # pylint: disable=no-member + raise Exception('Slice retrieval failed. Wrong Slice Id was returned') + slice_client = SliceClient() + slice_client.DeleteSlice(target.slice_id) response = jsonify({}) response.status_code = HTTP_NOCONTENT except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Something went wrong Deleting Service {:s}'.format(str(request))) + LOGGER.exception('Something went wrong Deleting VPN({:s})'.format(str(vpn_id))) response = jsonify({'error': str(e)}) response.status_code = HTTP_SERVERERROR return response diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py index 7b959b2895d0f0acd27058fcb5e9a571cf6553d2..f27d852f017a08cb8b854cc19568280b9de14470 100644 --- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py +++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py @@ -19,8 +19,7 @@ from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_UUID -from common.proto.context_pb2 import Service, ServiceStatusEnum, ServiceTypeEnum, SliceStatusEnum, Slice -from service.client.ServiceClient import ServiceClient +from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient from .schemas.vpn_service import SCHEMA_VPN_SERVICE from .tools.Authentication import HTTP_AUTH @@ -44,30 +43,16 @@ class L2VPN_Services(Resource): vpn_services : List[Dict] = request_data['ietf-l2vpn-svc:vpn-service'] for vpn_service in vpn_services: try: - vpn_service_type = vpn_service['vpn-svc-type'] - if vpn_service_type == 'vpws': - # pylint: disable=no-member - service_request = Service() - service_request.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID - service_request.service_id.service_uuid.uuid = vpn_service['vpn-id'] - service_request.service_type = ServiceTypeEnum.SERVICETYPE_L3NM - service_request.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED - - service_client = ServiceClient() - service_reply = service_client.CreateService(service_request) - if service_reply != service_request.service_id: # pylint: disable=no-member - raise Exception('Service creation failed. Wrong Service Id was returned') - elif vpn_service_type == 'vpls': - # pylint: disable=no-member - slice_request = Slice() - slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID - slice_request.slice_id.slice_uuid.uuid = vpn_service['vpn-id'] - slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED - - slice_client = SliceClient() - slice_reply = slice_client.CreateSlice(slice_request) - if slice_reply != slice_request.slice_id: # pylint: disable=no-member - raise Exception('Slice creation failed. Wrong Slice Id was returned') + # pylint: disable=no-member + slice_request = Slice() + slice_request.slice_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_UUID + slice_request.slice_id.slice_uuid.uuid = vpn_service['vpn-id'] + slice_request.slice_status.slice_status = SliceStatusEnum.SLICESTATUS_PLANNED + + slice_client = SliceClient() + slice_reply = slice_client.CreateSlice(slice_request) + if slice_reply != slice_request.slice_id: # pylint: disable=no-member + raise Exception('Slice creation failed. Wrong Slice Id was returned') response = jsonify({}) response.status_code = HTTP_CREATED diff --git a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py index 8be63895b813d7411b76ddeb33902babbf4c9743..3cc823a2aa7a06de6cb591ef6d668ba7eeef5cbd 100644 --- a/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py +++ b/src/compute/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py @@ -12,169 +12,113 @@ # See the License for the specific language governing permissions and # limitations under the License. -from ctypes import Union -import json, logging -from typing import Dict +import logging +from typing import Dict, Optional from flask import request from flask.json import jsonify from flask.wrappers import Response from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType -from common.proto.context_pb2 import ConfigActionEnum, Service, Slice +from common.proto.context_pb2 import Slice +from common.tools.grpc.ConfigRules import update_config_rule_custom +from common.tools.grpc.Constraints import ( + update_constraint_custom, update_constraint_endpoint_location, update_constraint_endpoint_priority, + update_constraint_sla_availability) +from common.tools.grpc.EndPointIds import update_endpoint_ids from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient -from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from .schemas.site_network_access import SCHEMA_SITE_NETWORK_ACCESS from .tools.Authentication import HTTP_AUTH -from .tools.ContextMethods import get_service, get_slice +from .tools.ContextMethods import get_slice from .tools.HttpStatusCodes import HTTP_NOCONTENT, HTTP_SERVERERROR from .tools.Validator import validate_message -from .Constants import BEARER_MAPPINGS, DEFAULT_ADDRESS_FAMILIES, DEFAULT_BGP_AS, DEFAULT_BGP_ROUTE_TARGET, DEFAULT_MTU +from .Constants import ( + BEARER_MAPPINGS, DEFAULT_ADDRESS_FAMILIES, DEFAULT_BGP_AS, DEFAULT_BGP_ROUTE_TARGET, DEFAULT_MTU) LOGGER = logging.getLogger(__name__) -def process_site_network_access(context_client : ContextClient, site_network_access : Dict) -> Service: +def process_site_network_access(context_client : ContextClient, site_id : str, site_network_access : Dict) -> Slice: vpn_id = site_network_access['vpn-attachment']['vpn-id'] - cvlan_id = site_network_access['connection']['tagged-interface']['dot1q-vlan-tagged']['cvlan-id'] + encapsulation_type = site_network_access['connection']['encapsulation-type'] + cvlan_id = site_network_access['connection']['tagged-interface'][encapsulation_type]['cvlan-id'] + bearer_reference = site_network_access['bearer']['bearer-reference'] + access_priority : Optional[int] = site_network_access.get('availability', {}).get('access-priority') + single_active : bool = len(site_network_access.get('availability', {}).get('single-active', [])) > 0 + all_active : bool = len(site_network_access.get('availability', {}).get('all-active', [])) > 0 + + diversity_constraints = site_network_access.get('access-diversity', {}).get('constraints', {}).get('constraint', []) + raise_if_differs = True + diversity_constraints = { + constraint['constraint-type']:([ + target[0] + for target in constraint['target'].items() + if len(target[1]) == 1 + ][0], raise_if_differs) + for constraint in diversity_constraints + } + mapping = BEARER_MAPPINGS.get(bearer_reference) if mapping is None: msg = 'Specified Bearer({:s}) is not configured.' raise Exception(msg.format(str(bearer_reference))) - device_uuid,endpoint_uuid,router_id,route_distinguisher,sub_if_index,address_ip,address_prefix = mapping + ( + device_uuid, endpoint_uuid, router_id, route_dist, sub_if_index, + address_ip, address_prefix, remote_router, circuit_id + ) = mapping - target : Union[Service, Slice, None] = None - if target is None: target = get_service(context_client, vpn_id) - if target is None: target = get_slice (context_client, vpn_id) + target = get_slice(context_client, vpn_id) if target is None: raise Exception('VPN({:s}) not found in database'.format(str(vpn_id))) - # pylint: disable=no-member - endpoint_ids = target.service_endpoint_ids if isinstance(target, Service) else target.slice_endpoint_ids - - for endpoint_id in endpoint_ids: - if endpoint_id.device_id.device_uuid.uuid != device_uuid: continue - if endpoint_id.endpoint_uuid.uuid != endpoint_uuid: continue - break # found, do nothing - else: - # not found, add it - endpoint_id = endpoint_ids.add() - endpoint_id.device_id.device_uuid.uuid = device_uuid - endpoint_id.endpoint_uuid.uuid = endpoint_uuid - - if isinstance(target, Slice): return target - - for config_rule in target.service_config.config_rules: # pylint: disable=no-member - if config_rule.WhichOneof('config_rule') != 'custom': continue - if config_rule.custom.resource_key != '/settings': continue - json_settings = json.loads(config_rule.custom.resource_value) - - if 'mtu' not in json_settings: # missing, add it - json_settings['mtu'] = DEFAULT_MTU - elif json_settings['mtu'] != DEFAULT_MTU: # differs, raise exception - msg = 'Specified MTU({:s}) differs from Service MTU({:s})' - raise Exception(msg.format(str(json_settings['mtu']), str(DEFAULT_MTU))) - - if 'address_families' not in json_settings: # missing, add it - json_settings['address_families'] = DEFAULT_ADDRESS_FAMILIES - elif json_settings['address_families'] != DEFAULT_ADDRESS_FAMILIES: # differs, raise exception - msg = 'Specified AddressFamilies({:s}) differs from Service AddressFamilies({:s})' - raise Exception(msg.format(str(json_settings['address_families']), str(DEFAULT_ADDRESS_FAMILIES))) - - if 'bgp_as' not in json_settings: # missing, add it - json_settings['bgp_as'] = DEFAULT_BGP_AS - elif json_settings['bgp_as'] != DEFAULT_BGP_AS: # differs, raise exception - msg = 'Specified BgpAs({:s}) differs from Service BgpAs({:s})' - raise Exception(msg.format(str(json_settings['bgp_as']), str(DEFAULT_BGP_AS))) - - if 'bgp_route_target' not in json_settings: # missing, add it - json_settings['bgp_route_target'] = DEFAULT_BGP_ROUTE_TARGET - elif json_settings['bgp_route_target'] != DEFAULT_BGP_ROUTE_TARGET: # differs, raise exception - msg = 'Specified BgpRouteTarget({:s}) differs from Service BgpRouteTarget({:s})' - raise Exception(msg.format(str(json_settings['bgp_route_target']), str(DEFAULT_BGP_ROUTE_TARGET))) - - config_rule.custom.resource_value = json.dumps(json_settings, sort_keys=True) - break - else: - # not found, add it - config_rule = target.service_config.config_rules.add() # pylint: disable=no-member - config_rule.action = ConfigActionEnum.CONFIGACTION_SET - config_rule.custom.resource_key = '/settings' - config_rule.custom.resource_value = json.dumps({ - 'mtu' : DEFAULT_MTU, - 'address_families': DEFAULT_ADDRESS_FAMILIES, - 'bgp_as' : DEFAULT_BGP_AS, - 'bgp_route_target': DEFAULT_BGP_ROUTE_TARGET, - }, sort_keys=True) + endpoint_ids = target.slice_endpoint_ids # pylint: disable=no-member + config_rules = target.slice_config.config_rules # pylint: disable=no-member + constraints = target.slice_constraints # pylint: disable=no-member + + endpoint_id = update_endpoint_ids(endpoint_ids, device_uuid, endpoint_uuid) + + service_settings_key = '/settings' + update_config_rule_custom(config_rules, service_settings_key, { + 'mtu' : (DEFAULT_MTU, True), + 'address_families': (DEFAULT_ADDRESS_FAMILIES, True), + 'bgp_as' : (DEFAULT_BGP_AS, True), + 'bgp_route_target': (DEFAULT_BGP_ROUTE_TARGET, True), + }) endpoint_settings_key = '/device[{:s}]/endpoint[{:s}]/settings'.format(device_uuid, endpoint_uuid) - for config_rule in target.service_config.config_rules: # pylint: disable=no-member - if config_rule.WhichOneof('config_rule') != 'custom': continue - if config_rule.custom.resource_key != endpoint_settings_key: continue - json_settings = json.loads(config_rule.custom.resource_value) - - if 'router_id' not in json_settings: # missing, add it - json_settings['router_id'] = router_id - elif json_settings['router_id'] != router_id: # differs, raise exception - msg = 'Specified RouterId({:s}) differs from Service RouterId({:s})' - raise Exception(msg.format(str(json_settings['router_id']), str(router_id))) - - if 'route_distinguisher' not in json_settings: # missing, add it - json_settings['route_distinguisher'] = route_distinguisher - elif json_settings['route_distinguisher'] != route_distinguisher: # differs, raise exception - msg = 'Specified RouteDistinguisher({:s}) differs from Service RouteDistinguisher({:s})' - raise Exception(msg.format(str(json_settings['route_distinguisher']), str(route_distinguisher))) - - if 'sub_interface_index' not in json_settings: # missing, add it - json_settings['sub_interface_index'] = sub_if_index - elif json_settings['sub_interface_index'] != sub_if_index: # differs, raise exception - msg = 'Specified SubInterfaceIndex({:s}) differs from Service SubInterfaceIndex({:s})' - raise Exception(msg.format( - str(json_settings['sub_interface_index']), str(sub_if_index))) - - if 'vlan_id' not in json_settings: # missing, add it - json_settings['vlan_id'] = cvlan_id - elif json_settings['vlan_id'] != cvlan_id: # differs, raise exception - msg = 'Specified VLANId({:s}) differs from Service VLANId({:s})' - raise Exception(msg.format( - str(json_settings['vlan_id']), str(cvlan_id))) - - if 'address_ip' not in json_settings: # missing, add it - json_settings['address_ip'] = address_ip - elif json_settings['address_ip'] != address_ip: # differs, raise exception - msg = 'Specified AddressIP({:s}) differs from Service AddressIP({:s})' - raise Exception(msg.format( - str(json_settings['address_ip']), str(address_ip))) - - if 'address_prefix' not in json_settings: # missing, add it - json_settings['address_prefix'] = address_prefix - elif json_settings['address_prefix'] != address_prefix: # differs, raise exception - msg = 'Specified AddressPrefix({:s}) differs from Service AddressPrefix({:s})' - raise Exception(msg.format( - str(json_settings['address_prefix']), str(address_prefix))) - - config_rule.custom.resource_value = json.dumps(json_settings, sort_keys=True) - break - else: - # not found, add it - config_rule = target.service_config.config_rules.add() # pylint: disable=no-member - config_rule.action = ConfigActionEnum.CONFIGACTION_SET - config_rule.custom.resource_key = endpoint_settings_key - config_rule.custom.resource_value = json.dumps({ - 'router_id': router_id, - 'route_distinguisher': route_distinguisher, - 'sub_interface_index': sub_if_index, - 'vlan_id': cvlan_id, - 'address_ip': address_ip, - 'address_prefix': address_prefix, - }, sort_keys=True) + field_updates = {} + if router_id is not None: field_updates['router_id' ] = (router_id, True) + if route_dist is not None: field_updates['route_distinguisher'] = (route_dist, True) + if sub_if_index is not None: field_updates['sub_interface_index'] = (sub_if_index, True) + if cvlan_id is not None: field_updates['vlan_id' ] = (cvlan_id, True) + if address_ip is not None: field_updates['address_ip' ] = (address_ip, True) + if address_prefix is not None: field_updates['address_prefix' ] = (address_prefix, True) + if remote_router is not None: field_updates['remote_router' ] = (remote_router, True) + if circuit_id is not None: field_updates['circuit_id' ] = (circuit_id, True) + update_config_rule_custom(config_rules, endpoint_settings_key, field_updates) + + if len(diversity_constraints) > 0: + update_constraint_custom(constraints, 'diversity', diversity_constraints) + + update_constraint_endpoint_location(constraints, endpoint_id, region=site_id) + if access_priority is not None: update_constraint_endpoint_priority(constraints, endpoint_id, access_priority) + if single_active or all_active: + # assume 1 disjoint path per endpoint/location included in service/slice + location_endpoints = {} + for constraint in constraints: + if constraint.WhichOneof('constraint') != 'endpoint_location': continue + str_endpoint_id = grpc_message_to_json_string(constraint.endpoint_location.endpoint_id) + str_location_id = grpc_message_to_json_string(constraint.endpoint_location.location) + location_endpoints.setdefault(str_location_id, set()).add(str_endpoint_id) + num_endpoints_per_location = {len(endpoints) for endpoints in location_endpoints.values()} + num_disjoint_paths = min(num_endpoints_per_location) + update_constraint_sla_availability(constraints, num_disjoint_paths, all_active) return target def process_list_site_network_access( - context_client : ContextClient, service_client : ServiceClient, slice_client : SliceClient, - request_data : Dict + context_client : ContextClient, slice_client : SliceClient, site_id : str, request_data : Dict ) -> Response: LOGGER.debug('Request: {:s}'.format(str(request_data))) @@ -182,21 +126,14 @@ def process_list_site_network_access( errors = [] for site_network_access in request_data['ietf-l2vpn-svc:site-network-access']: - sna_request = process_site_network_access(context_client, site_network_access) + sna_request = process_site_network_access(context_client, site_id, site_network_access) LOGGER.debug('sna_request = {:s}'.format(grpc_message_to_json_string(sna_request))) try: - if isinstance(sna_request, Service): - sna_reply = service_client.UpdateService(sna_request) - if sna_reply != sna_request.service_id: # pylint: disable=no-member - raise Exception('Service update failed. Wrong Service Id was returned') - elif isinstance(sna_request, Slice): - sna_reply = slice_client.UpdateSlice(sna_request) - if sna_reply != sna_request.slice_id: # pylint: disable=no-member - raise Exception('Slice update failed. Wrong Slice Id was returned') - else: - raise NotImplementedError('Support for Class({:s}) not implemented'.format(str(type(sna_request)))) + sna_reply = slice_client.UpdateSlice(sna_request) + if sna_reply != sna_request.slice_id: # pylint: disable=no-member + raise Exception('Slice update failed. Wrong Slice Id was returned') except Exception as e: # pylint: disable=broad-except - msg = 'Something went wrong Updating Service {:s}' + msg = 'Something went wrong Updating VPN {:s}' LOGGER.exception(msg.format(grpc_message_to_json_string(sna_request))) errors.append({'error': str(e)}) @@ -210,15 +147,13 @@ class L2VPN_SiteNetworkAccesses(Resource): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() - service_client = ServiceClient() slice_client = SliceClient() - return process_list_site_network_access(context_client, service_client, slice_client, request.json) + return process_list_site_network_access(context_client, slice_client, site_id, request.json) @HTTP_AUTH.login_required def put(self, site_id : str): if not request.is_json: raise UnsupportedMediaType('JSON payload is required') LOGGER.debug('Site_Id: {:s}'.format(str(site_id))) context_client = ContextClient() - service_client = ServiceClient() slice_client = SliceClient() - return process_list_site_network_access(context_client, service_client, slice_client, request.json) + return process_list_site_network_access(context_client, slice_client, site_id, request.json) diff --git a/src/compute/tests/Constants.py b/src/compute/tests/Constants.py index 640124b07fd8e5dc0dff0635175b1499544f1b2d..cb1331c7445888070c6c3d5ecef6136f9f149916 100644 --- a/src/compute/tests/Constants.py +++ b/src/compute/tests/Constants.py @@ -82,4 +82,4 @@ SERVICE_CONNECTION_POINTS_2 = [ {'service_endpoint_id': 'ep-3', 'service_endpoint_encapsulation_type': 'dot1q', 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] +] \ No newline at end of file diff --git a/src/compute/tests/mock_osm/WimconnectorIETFL2VPN.py b/src/compute/tests/mock_osm/WimconnectorIETFL2VPN.py index b9639e8046593c1dbf4017cff963ceb7c51d0532..e1273b4e483a06df23d94bdf107005ce7585fb5e 100644 --- a/src/compute/tests/mock_osm/WimconnectorIETFL2VPN.py +++ b/src/compute/tests/mock_osm/WimconnectorIETFL2VPN.py @@ -33,6 +33,7 @@ the Layer 2 service. import requests import uuid import logging +import copy #from osm_ro_plugin.sdnconn import SdnConnectorBase, SdnConnectorError from .sdnconn import SdnConnectorBase, SdnConnectorError @@ -222,8 +223,29 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): http_code=response_service_creation.status_code, ) - """Second step, create the connections and vpn attachments""" + self.logger.info('connection_points = {:s}'.format(str(connection_points))) + + # Check if protected paths are requested + extended_connection_points = [] for connection_point in connection_points: + extended_connection_points.append(connection_point) + + connection_point_wan_info = self.search_mapp(connection_point) + service_mapping_info = connection_point_wan_info.get('service_mapping_info', {}) + redundant_service_endpoint_ids = service_mapping_info.get('redundant') + + if redundant_service_endpoint_ids is None: continue + if len(redundant_service_endpoint_ids) == 0: continue + + for redundant_service_endpoint_id in redundant_service_endpoint_ids: + redundant_connection_point = copy.deepcopy(connection_point) + redundant_connection_point['service_endpoint_id'] = redundant_service_endpoint_id + extended_connection_points.append(redundant_connection_point) + + self.logger.info('extended_connection_points = {:s}'.format(str(extended_connection_points))) + + """Second step, create the connections and vpn attachments""" + for connection_point in extended_connection_points: connection_point_wan_info = self.search_mapp(connection_point) site_network_access = {} connection = {} @@ -264,6 +286,23 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): site_network_access["bearer"] = connection_point_wan_info[ "service_mapping_info" ]["bearer"] + + access_priority = connection_point_wan_info["service_mapping_info"].get("priority") + if access_priority is not None: + availability = {} + availability["access-priority"] = access_priority + availability["single-active"] = [None] + site_network_access["availability"] = availability + + constraint = {} + constraint['constraint-type'] = 'end-to-end-diverse' + constraint['target'] = {'all-other-accesses': [None]} + + access_diversity = {} + access_diversity['constraints'] = {'constraint': []} + access_diversity['constraints']['constraint'].append(constraint) + site_network_access["access-diversity"] = access_diversity + site_network_accesses = {} site_network_access_list = [] site_network_access_list.append(site_network_access) @@ -332,7 +371,7 @@ class WimconnectorIETFL2VPN(SdnConnectorBase): self.delete_connectivity_service(vpn_service["vpn-id"]) raise SdnConnectorError( - "Request no accepted", + "Request not accepted", http_code=response_endpoint_site_network_access_creation.status_code, ) except requests.exceptions.ConnectionError: diff --git a/src/context/service/database/ConfigModel.py b/src/context/service/database/ConfigModel.py index a5f90788e4783edf1eba76cf6fe461aaa96476e6..5c6ef0079a03116d4f67519440d93185b94f2969 100644 --- a/src/context/service/database/ConfigModel.py +++ b/src/context/service/database/ConfigModel.py @@ -12,9 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import functools, logging, operator +import functools, json, logging, operator from enum import Enum -from typing import Dict, List, Optional, Tuple, Union +from typing import Dict, List, Optional, Tuple, Type, Union from common.orm.Database import Database from common.orm.HighLevel import get_object, get_or_create_object, update_or_create_object from common.orm.backend.Tools import key_to_str @@ -24,8 +24,9 @@ from common.orm.fields.IntegerField import IntegerField from common.orm.fields.PrimaryKeyField import PrimaryKeyField from common.orm.fields.StringField import StringField from common.orm.model.Model import Model -from common.proto.context_pb2 import ConfigActionEnum +from common.proto.context_pb2 import ConfigActionEnum, ConfigRule from common.tools.grpc.Tools import grpc_message_to_json_string +#from .EndPointModel import EndPointModel, get_endpoint from .Tools import fast_hasher, grpc_to_enum, remove_dict_key LOGGER = logging.getLogger(__name__) @@ -52,86 +53,176 @@ class ConfigModel(Model): # pylint: disable=abstract-method config_rules = sorted(config_rules, key=operator.itemgetter('position')) return [remove_dict_key(config_rule, 'position') for config_rule in config_rules] +class ConfigRuleCustomModel(Model): # pylint: disable=abstract-method + key = StringField(required=True, allow_empty=False) + value = StringField(required=True, allow_empty=False) + + def dump(self) -> Dict: # pylint: disable=arguments-differ + return {'custom': {'resource_key': self.key, 'resource_value': self.value}} + +class ConfigRuleAclModel(Model): # pylint: disable=abstract-method + # TODO: improve definition of fields in ConfigRuleAclModel + # To simplify, endpoint encoded as JSON-string directly; otherwise causes circular dependencies + #endpoint_fk = ForeignKeyField(EndPointModel) + endpoint_id = StringField(required=True, allow_empty=False) + # To simplify, ACL rule is encoded as a JSON-string directly + acl_data = StringField(required=True, allow_empty=False) + + def dump(self) -> Dict: # pylint: disable=arguments-differ + #json_endpoint_id = EndPointModel(self.database, self.endpoint_fk).dump_id() + json_endpoint_id = json.loads(self.endpoint_id) + json_acl_rule_set = json.loads(self.acl_data) + return {'acl': {'endpoint_id': json_endpoint_id, 'rule_set': json_acl_rule_set}} + +# enum values should match name of field in ConfigRuleModel +class ConfigRuleKindEnum(Enum): + CUSTOM = 'custom' + ACL = 'acl' + +Union_SpecificConfigRule = Union[ + ConfigRuleCustomModel, ConfigRuleAclModel +] + class ConfigRuleModel(Model): # pylint: disable=abstract-method pk = PrimaryKeyField() config_fk = ForeignKeyField(ConfigModel) + kind = EnumeratedField(ConfigRuleKindEnum) position = IntegerField(min_value=0, required=True) action = EnumeratedField(ORM_ConfigActionEnum, required=True) - key = StringField(required=True, allow_empty=False) - value = StringField(required=True, allow_empty=False) + config_rule_custom_fk = ForeignKeyField(ConfigRuleCustomModel, required=False) + config_rule_acl_fk = ForeignKeyField(ConfigRuleAclModel, required=False) + + def delete(self) -> None: + field_name = 'config_rule_{:s}_fk'.format(str(self.kind.value)) + specific_fk_value : Optional[ForeignKeyField] = getattr(self, field_name, None) + if specific_fk_value is None: + raise Exception('Unable to find config_rule key for field_name({:s})'.format(field_name)) + specific_fk_class = getattr(ConfigRuleModel, field_name, None) + foreign_model_class : Model = specific_fk_class.foreign_model + super().delete() + get_object(self.database, foreign_model_class, str(specific_fk_value)).delete() def dump(self, include_position=True) -> Dict: # pylint: disable=arguments-differ - result = { - 'action': self.action.value, - 'custom': { - 'resource_key': self.key, - 'resource_value': self.value, - }, - } + field_name = 'config_rule_{:s}_fk'.format(str(self.kind.value)) + specific_fk_value : Optional[ForeignKeyField] = getattr(self, field_name, None) + if specific_fk_value is None: + raise Exception('Unable to find config_rule key for field_name({:s})'.format(field_name)) + specific_fk_class = getattr(ConfigRuleModel, field_name, None) + foreign_model_class : Model = specific_fk_class.foreign_model + config_rule : Union_SpecificConfigRule = get_object(self.database, foreign_model_class, str(specific_fk_value)) + result = config_rule.dump() + result['action'] = self.action.value if include_position: result['position'] = self.position return result +Tuple_ConfigRuleSpecs = Tuple[Type, str, Dict, ConfigRuleKindEnum] + +def parse_config_rule_custom(database : Database, grpc_config_rule) -> Tuple_ConfigRuleSpecs: + config_rule_class = ConfigRuleCustomModel + str_config_rule_id = grpc_config_rule.custom.resource_key + config_rule_data = { + 'key' : grpc_config_rule.custom.resource_key, + 'value': grpc_config_rule.custom.resource_value, + } + return config_rule_class, str_config_rule_id, config_rule_data, ConfigRuleKindEnum.CUSTOM + +def parse_config_rule_acl(database : Database, grpc_config_rule) -> Tuple_ConfigRuleSpecs: + config_rule_class = ConfigRuleAclModel + grpc_endpoint_id = grpc_config_rule.acl.endpoint_id + grpc_rule_set = grpc_config_rule.acl.rule_set + device_uuid = grpc_endpoint_id.device_id.device_uuid.uuid + endpoint_uuid = grpc_endpoint_id.endpoint_uuid.uuid + str_endpoint_key = '/'.join([device_uuid, endpoint_uuid]) + #str_endpoint_key, db_endpoint = get_endpoint(database, grpc_endpoint_id) + str_config_rule_id = ':'.join([str_endpoint_key, grpc_rule_set.name]) + config_rule_data = { + #'endpoint_fk': db_endpoint, + 'endpoint_id': grpc_message_to_json_string(grpc_endpoint_id), + 'acl_data': grpc_message_to_json_string(grpc_rule_set), + } + return config_rule_class, str_config_rule_id, config_rule_data, ConfigRuleKindEnum.ACL + +CONFIGRULE_PARSERS = { + 'custom': parse_config_rule_custom, + 'acl' : parse_config_rule_acl, +} + +Union_ConfigRuleModel = Union[ + ConfigRuleCustomModel, ConfigRuleAclModel, +] + def set_config_rule( - database : Database, db_config : ConfigModel, position : int, resource_key : str, resource_value : str -) -> Tuple[ConfigRuleModel, bool]: - - str_rule_key_hash = fast_hasher(resource_key) - str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') - result : Tuple[ConfigRuleModel, bool] = update_or_create_object(database, ConfigRuleModel, str_config_rule_key, { - 'config_fk': db_config, 'position': position, 'action': ORM_ConfigActionEnum.SET, - 'key': resource_key, 'value': resource_value}) + database : Database, db_config : ConfigModel, grpc_config_rule : ConfigRule, position : int +) -> Tuple[Union_ConfigRuleModel, bool]: + grpc_config_rule_kind = str(grpc_config_rule.WhichOneof('config_rule')) + parser = CONFIGRULE_PARSERS.get(grpc_config_rule_kind) + if parser is None: + raise NotImplementedError('ConfigRule of kind {:s} is not implemented: {:s}'.format( + grpc_config_rule_kind, grpc_message_to_json_string(grpc_config_rule))) + + # create specific ConfigRule + config_rule_class, str_config_rule_id, config_rule_data, config_rule_kind = parser(database, grpc_config_rule) + str_config_rule_key_hash = fast_hasher(':'.join([config_rule_kind.value, str_config_rule_id])) + str_config_rule_key = key_to_str([db_config.pk, str_config_rule_key_hash], separator=':') + result : Tuple[Union_ConfigRuleModel, bool] = update_or_create_object( + database, config_rule_class, str_config_rule_key, config_rule_data) + db_specific_config_rule, updated = result + + # create generic ConfigRule + config_rule_fk_field_name = 'config_rule_{:s}_fk'.format(config_rule_kind.value) + config_rule_data = { + 'config_fk': db_config, 'kind': config_rule_kind, 'position': position, + 'action': ORM_ConfigActionEnum.SET, + config_rule_fk_field_name: db_specific_config_rule + } + result : Tuple[ConfigRuleModel, bool] = update_or_create_object( + database, ConfigRuleModel, str_config_rule_key, config_rule_data) db_config_rule, updated = result + return db_config_rule, updated def delete_config_rule( - database : Database, db_config : ConfigModel, resource_key : str + database : Database, db_config : ConfigModel, grpc_config_rule : ConfigRule ) -> None: - - str_rule_key_hash = fast_hasher(resource_key) - str_config_rule_key = key_to_str([db_config.pk, str_rule_key_hash], separator=':') + grpc_config_rule_kind = str(grpc_config_rule.WhichOneof('config_rule')) + parser = CONFIGRULE_PARSERS.get(grpc_config_rule_kind) + if parser is None: + raise NotImplementedError('ConfigRule of kind {:s} is not implemented: {:s}'.format( + grpc_config_rule_kind, grpc_message_to_json_string(grpc_config_rule))) + + # delete generic config rules; self deletes specific config rule + _, str_config_rule_id, _, config_rule_kind = parser(database, grpc_config_rule) + str_config_rule_key_hash = fast_hasher(':'.join([config_rule_kind.value, str_config_rule_id])) + str_config_rule_key = key_to_str([db_config.pk, str_config_rule_key_hash], separator=':') db_config_rule : Optional[ConfigRuleModel] = get_object( database, ConfigRuleModel, str_config_rule_key, raise_if_not_found=False) if db_config_rule is None: return db_config_rule.delete() -def delete_all_config_rules( - database : Database, db_config : ConfigModel -) -> None: - - db_config_rule_pks = db_config.references(ConfigRuleModel) - for pk,_ in db_config_rule_pks: ConfigRuleModel(database, pk).delete() - -def grpc_config_rules_to_raw(grpc_config_rules) -> List[Tuple[ORM_ConfigActionEnum, str, str]]: - def translate(grpc_config_rule): - action = grpc_to_enum__config_action(grpc_config_rule.action) - config_rule_type = str(grpc_config_rule.WhichOneof('config_rule')) - if config_rule_type != 'custom': - raise NotImplementedError('ConfigRule of type {:s} is not implemented: {:s}'.format( - config_rule_type, grpc_message_to_json_string(grpc_config_rule))) - return action, grpc_config_rule.custom.resource_key, grpc_config_rule.custom.resource_value - return [translate(grpc_config_rule) for grpc_config_rule in grpc_config_rules] - def update_config( - database : Database, db_parent_pk : str, config_name : str, - raw_config_rules : List[Tuple[ORM_ConfigActionEnum, str, str]] + database : Database, db_parent_pk : str, config_name : str, grpc_config_rules ) -> List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]]: str_config_key = key_to_str([config_name, db_parent_pk], separator=':') result : Tuple[ConfigModel, bool] = get_or_create_object(database, ConfigModel, str_config_key) db_config, created = result - db_objects : List[Tuple[Union[ConfigModel, ConfigRuleModel], bool]] = [(db_config, created)] + db_objects = [(db_config, created)] + + for position,grpc_config_rule in enumerate(grpc_config_rules): + action = grpc_to_enum__config_action(grpc_config_rule.action) - for position,(action, resource_key, resource_value) in enumerate(raw_config_rules): if action == ORM_ConfigActionEnum.SET: result : Tuple[ConfigRuleModel, bool] = set_config_rule( - database, db_config, position, resource_key, resource_value) + database, db_config, grpc_config_rule, position) db_config_rule, updated = result db_objects.append((db_config_rule, updated)) elif action == ORM_ConfigActionEnum.DELETE: - delete_config_rule(database, db_config, resource_key) + delete_config_rule(database, db_config, grpc_config_rule) else: - msg = 'Unsupported action({:s}) for resource_key({:s})/resource_value({:s})' - raise AttributeError(msg.format(str(ConfigActionEnum.Name(action)), str(resource_key), str(resource_value))) + msg = 'Unsupported Action({:s}) for ConfigRule({:s})' + str_action = str(ConfigActionEnum.Name(action)) + str_config_rule = grpc_message_to_json_string(grpc_config_rule) + raise AttributeError(msg.format(str_action, str_config_rule)) return db_objects diff --git a/src/context/service/grpc_server/ContextServiceServicerImpl.py b/src/context/service/grpc_server/ContextServiceServicerImpl.py index 71c97bf9ffc65942993dbdd966925f27aafad9ec..88f7bd8af82009f1fc45bace87776d9cbc6d6543 100644 --- a/src/context/service/grpc_server/ContextServiceServicerImpl.py +++ b/src/context/service/grpc_server/ContextServiceServicerImpl.py @@ -31,7 +31,7 @@ from common.proto.context_pb2 import ( from common.proto.context_pb2_grpc import ContextServiceServicer from common.rpc_method_wrapper.Decorator import create_metrics, safe_and_metered_rpc_method from common.rpc_method_wrapper.ServiceExceptions import InvalidArgumentException -from context.service.database.ConfigModel import grpc_config_rules_to_raw, update_config +from context.service.database.ConfigModel import update_config from context.service.database.ConnectionModel import ConnectionModel, set_path from context.service.database.ConstraintModel import set_constraints from context.service.database.ContextModel import ContextModel @@ -277,8 +277,8 @@ class ContextServiceServicerImpl(ContextServiceServicer): 'request.device_endpoints[{:d}].device_id.device_uuid.uuid'.format(i), endpoint_device_uuid, ['should be == {:s}({:s})'.format('request.device_id.device_uuid.uuid', device_uuid)]) - config_rules = grpc_config_rules_to_raw(request.device_config.config_rules) - running_config_rules = update_config(self.database, device_uuid, 'device', config_rules) + running_config_rules = update_config( + self.database, device_uuid, 'device', request.device_config.config_rules) db_running_config = running_config_rules[0][0] result : Tuple[DeviceModel, bool] = update_or_create_object(self.database, DeviceModel, device_uuid, { @@ -487,8 +487,8 @@ class ContextServiceServicerImpl(ContextServiceServicer): self.database, str_service_key, 'service', request.service_constraints) db_constraints = constraints_result[0][0] - config_rules = grpc_config_rules_to_raw(request.service_config.config_rules) - running_config_rules = update_config(self.database, str_service_key, 'service', config_rules) + running_config_rules = update_config( + self.database, str_service_key, 'service', request.service_config.config_rules) db_running_config = running_config_rules[0][0] result : Tuple[ServiceModel, bool] = update_or_create_object(self.database, ServiceModel, str_service_key, { @@ -596,8 +596,8 @@ class ContextServiceServicerImpl(ContextServiceServicer): self.database, str_slice_key, 'slice', request.slice_constraints) db_constraints = constraints_result[0][0] - config_rules = grpc_config_rules_to_raw(request.slice_config.config_rules) - running_config_rules = update_config(self.database, str_slice_key, 'slice', config_rules) + running_config_rules = update_config( + self.database, str_slice_key, 'slice', request.slice_config.config_rules) db_running_config = running_config_rules[0][0] result : Tuple[SliceModel, bool] = update_or_create_object(self.database, SliceModel, str_slice_key, { diff --git a/src/context/tests/test_unitary.py b/src/context/tests/test_unitary.py index b46c9468c56974be5c987dbbc284daae337d3c7b..3109ef13dea98d4a56d661871b1c38ee2296f890 100644 --- a/src/context/tests/test_unitary.py +++ b/src/context/tests/test_unitary.py @@ -50,8 +50,8 @@ LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) LOCAL_HOST = '127.0.0.1' -GRPC_PORT = 10000 + get_service_port_grpc(ServiceNameEnum.CONTEXT) # avoid privileged ports -HTTP_PORT = 10000 + get_service_port_http(ServiceNameEnum.CONTEXT) # avoid privileged ports +GRPC_PORT = 10000 + int(get_service_port_grpc(ServiceNameEnum.CONTEXT)) # avoid privileged ports +HTTP_PORT = 10000 + int(get_service_port_http(ServiceNameEnum.CONTEXT)) # avoid privileged ports os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(GRPC_PORT) @@ -459,7 +459,7 @@ def test_grpc_device( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 40 + assert len(db_entries) == 47 # ----- Get when the object exists --------------------------------------------------------------------------------- response = context_client_grpc.GetDevice(DeviceId(**DEVICE_R1_ID)) @@ -512,7 +512,7 @@ def test_grpc_device( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 40 + assert len(db_entries) == 47 # ----- Remove the object ------------------------------------------------------------------------------------------ context_client_grpc.RemoveDevice(DeviceId(**DEVICE_R1_ID)) @@ -611,7 +611,7 @@ def test_grpc_link( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 67 + assert len(db_entries) == 80 # ----- Create the object ------------------------------------------------------------------------------------------ response = context_client_grpc.SetLink(Link(**LINK_R1_R2)) @@ -639,7 +639,7 @@ def test_grpc_link( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 75 + assert len(db_entries) == 88 # ----- Get when the object exists --------------------------------------------------------------------------------- response = context_client_grpc.GetLink(LinkId(**LINK_R1_R2_ID)) @@ -685,7 +685,7 @@ def test_grpc_link( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 75 + assert len(db_entries) == 88 # ----- Remove the object ------------------------------------------------------------------------------------------ context_client_grpc.RemoveLink(LinkId(**LINK_R1_R2_ID)) @@ -794,7 +794,7 @@ def test_grpc_service( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 67 + assert len(db_entries) == 80 # ----- Create the object ------------------------------------------------------------------------------------------ with pytest.raises(grpc.RpcError) as e: @@ -846,7 +846,7 @@ def test_grpc_service( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 89 + assert len(db_entries) == 108 # ----- Get when the object exists --------------------------------------------------------------------------------- response = context_client_grpc.GetService(ServiceId(**SERVICE_R1_R2_ID)) @@ -1042,7 +1042,7 @@ def test_grpc_connection( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 150 + assert len(db_entries) == 187 # ----- Create the object ------------------------------------------------------------------------------------------ with pytest.raises(grpc.RpcError) as e: @@ -1082,7 +1082,7 @@ def test_grpc_connection( for db_entry in db_entries: LOGGER.info(' [{:>4s}] {:40s} :: {:s}'.format(*db_entry)) # pragma: no cover LOGGER.info('-----------------------------------------------------------') - assert len(db_entries) == 166 + assert len(db_entries) == 203 # ----- Get when the object exists --------------------------------------------------------------------------------- response = context_client_grpc.GetConnection(ConnectionId(**CONNECTION_R1_R3_ID)) diff --git a/src/device/requirements.in b/src/device/requirements.in index 10506fbd42c5b7a64afb3cc7c6ea32e0f1fa49f6..9c8c0ef18f3bcd4a92180465d11cd465c4336d44 100644 --- a/src/device/requirements.in +++ b/src/device/requirements.in @@ -10,6 +10,9 @@ pytz==2021.3 redis==4.1.2 requests==2.27.1 xmltodict==0.12.0 +tabulate +ipaddress +macaddress # pip's dependency resolver does not take into account installed packages. # p4runtime does not specify the version of grpcio/protobuf it needs, so it tries to install latest one diff --git a/src/device/service/DeviceService.py b/src/device/service/DeviceService.py index 4dc2b01000d8ca6dd2b3ecee0b0f867338636c73..59134f26d3dd8c3fa0a9dddbcd1d3df298ec076a 100644 --- a/src/device/service/DeviceService.py +++ b/src/device/service/DeviceService.py @@ -23,10 +23,15 @@ from .driver_api.DriverInstanceCache import DriverInstanceCache from .DeviceServiceServicerImpl import DeviceServiceServicerImpl from .MonitoringLoops import MonitoringLoops +# Custom gRPC settings +# Multiple clients might keep connections alive waiting for RPC methods to be executed. +# Requests needs to be serialized to ensure correct device configurations +GRPC_MAX_WORKERS = 200 + class DeviceService(GenericGrpcService): def __init__(self, driver_instance_cache : DriverInstanceCache, cls_name: str = __name__) -> None: port = get_service_port_grpc(ServiceNameEnum.DEVICE) - super().__init__(port, cls_name=cls_name) + super().__init__(port, max_workers=GRPC_MAX_WORKERS, cls_name=cls_name) database = Database(get_database_backend(backend=BackendEnum.INMEMORY)) self.monitoring_loops = MonitoringLoops(database) self.device_servicer = DeviceServiceServicerImpl(database, driver_instance_cache, self.monitoring_loops) diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py index 9ffd028a67a34cfcce7a737a5817128126941759..d5d44f34ffb69a337b715a0884aea3770b3d3cec 100644 --- a/src/device/service/DeviceServiceServicerImpl.py +++ b/src/device/service/DeviceServiceServicerImpl.py @@ -24,6 +24,7 @@ from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.rpc_method_wrapper.Decorator import create_metrics, safe_and_metered_rpc_method from common.rpc_method_wrapper.ServiceExceptions import InvalidArgumentException, OperationFailedException from common.tools.grpc.Tools import grpc_message_to_json +from common.tools.mutex_queues.MutexQueues import MutexQueues from context.client.ContextClient import ContextClient from .database.ConfigModel import ( ConfigModel, ConfigRuleModel, ORM_ConfigActionEnum, get_config_rules, grpc_config_rules_to_raw, update_config) @@ -56,6 +57,7 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): self.database = database self.driver_instance_cache = driver_instance_cache self.monitoring_loops = monitoring_loops + self.mutex_queues = MutexQueues() LOGGER.debug('Servicer Created') @safe_and_metered_rpc_method(METRICS, LOGGER) @@ -101,348 +103,368 @@ class DeviceServiceServicerImpl(DeviceServiceServicer): json_request['device_config'] = {} request = Device(**json_request) - sync_device_from_context(device_uuid, self.context_client, self.database) - db_device,_ = update_device_in_local_database(self.database, request) - - driver_filter_fields = get_device_driver_filter_fields(db_device) - - #LOGGER.info('[AddDevice] connection_config_rules = {:s}'.format(str(connection_config_rules))) - address = connection_config_rules.pop('address', None) - port = connection_config_rules.pop('port', None) - settings = connection_config_rules.pop('settings', '{}') + self.mutex_queues.wait_my_turn(device_uuid) try: - settings = json.loads(settings) - except ValueError as e: - raise InvalidArgumentException( - 'device.device_config.config_rules[settings]', settings, - extra_details='_connect/settings Config Rules provided cannot be decoded as JSON dictionary.') from e - driver : _Driver = self.driver_instance_cache.get( - device_uuid, filter_fields=driver_filter_fields, address=address, port=port, settings=settings) - driver.Connect() - - endpoints = driver.GetConfig([RESOURCE_ENDPOINTS]) - try: - for resource_key, resource_value in endpoints: + sync_device_from_context(device_uuid, self.context_client, self.database) + db_device,_ = update_device_in_local_database(self.database, request) + + driver_filter_fields = get_device_driver_filter_fields(db_device) + + #LOGGER.info('[AddDevice] connection_config_rules = {:s}'.format(str(connection_config_rules))) + address = connection_config_rules.pop('address', None) + port = connection_config_rules.pop('port', None) + settings = connection_config_rules.pop('settings', '{}') + try: + settings = json.loads(settings) + except ValueError as e: + raise InvalidArgumentException( + 'device.device_config.config_rules[settings]', settings, + extra_details='_connect/settings Config Rules provided cannot be decoded as JSON dictionary.') from e + driver : _Driver = self.driver_instance_cache.get( + device_uuid, filter_fields=driver_filter_fields, address=address, port=port, settings=settings) + driver.Connect() + + endpoints = driver.GetConfig([RESOURCE_ENDPOINTS]) + try: + for resource_key, resource_value in endpoints: + if isinstance(resource_value, Exception): + LOGGER.error('Error retrieving "{:s}": {:s}'.format(str(RESOURCE_ENDPOINTS), str(resource_value))) + continue + endpoint_uuid = resource_value.get('uuid') + endpoint_type = resource_value.get('type') + str_endpoint_key = key_to_str([device_uuid, endpoint_uuid]) + db_endpoint, _ = update_or_create_object( + self.database, EndPointModel, str_endpoint_key, { + 'device_fk' : db_device, + 'endpoint_uuid': endpoint_uuid, + 'endpoint_type': endpoint_type, + 'resource_key' : resource_key, + }) + sample_types : Dict[int, str] = resource_value.get('sample_types', {}) + for sample_type, monitor_resource_key in sample_types.items(): + str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) + update_or_create_object(self.database, EndPointMonitorModel, str_endpoint_monitor_key, { + 'endpoint_fk' : db_endpoint, + 'resource_key' : monitor_resource_key, + 'kpi_sample_type': grpc_to_enum__kpi_sample_type(sample_type), + }) + except: # pylint: disable=bare-except + LOGGER.exception('[AddDevice] endpoints = {:s}'.format(str(endpoints))) + + raw_running_config_rules = driver.GetConfig() + running_config_rules = [] + for resource_key, resource_value in raw_running_config_rules: if isinstance(resource_value, Exception): - LOGGER.error('Error retrieving "{:s}": {:s}'.format(str(RESOURCE_ENDPOINTS), str(resource_value))) + msg = 'Error retrieving config rules: {:s} => {:s}' + LOGGER.error(msg.format(str(resource_key), str(resource_value))) continue - endpoint_uuid = resource_value.get('uuid') - endpoint_type = resource_value.get('type') - str_endpoint_key = key_to_str([device_uuid, endpoint_uuid]) - db_endpoint, _ = update_or_create_object( - self.database, EndPointModel, str_endpoint_key, { - 'device_fk' : db_device, - 'endpoint_uuid': endpoint_uuid, - 'endpoint_type': endpoint_type, - 'resource_key' : resource_key, - }) - sample_types : Dict[int, str] = resource_value.get('sample_types', {}) - for sample_type, monitor_resource_key in sample_types.items(): - str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) - update_or_create_object(self.database, EndPointMonitorModel, str_endpoint_monitor_key, { - 'endpoint_fk' : db_endpoint, - 'resource_key' : monitor_resource_key, - 'kpi_sample_type': grpc_to_enum__kpi_sample_type(sample_type), - }) - except: # pylint: disable=bare-except - LOGGER.exception('[AddDevice] endpoints = {:s}'.format(str(endpoints))) - - raw_running_config_rules = driver.GetConfig() - running_config_rules = [] - for resource_key, resource_value in raw_running_config_rules: - if isinstance(resource_value, Exception): - msg = 'Error retrieving config rules: {:s} => {:s}' - LOGGER.error(msg.format(str(resource_key), str(resource_value))) - continue - config_rule = (ORM_ConfigActionEnum.SET, resource_key, json.dumps(resource_value, sort_keys=True)) - running_config_rules.append(config_rule) + config_rule = (ORM_ConfigActionEnum.SET, resource_key, json.dumps(resource_value, sort_keys=True)) + running_config_rules.append(config_rule) - #for running_config_rule in running_config_rules: - # LOGGER.info('[AddDevice] running_config_rule: {:s}'.format(str(running_config_rule))) - update_config(self.database, device_uuid, 'running', running_config_rules) + #for running_config_rule in running_config_rules: + # LOGGER.info('[AddDevice] running_config_rule: {:s}'.format(str(running_config_rule))) + update_config(self.database, device_uuid, 'running', running_config_rules) - initial_config_rules = driver.GetInitialConfig() - update_config(self.database, device_uuid, 'initial', initial_config_rules) + initial_config_rules = driver.GetInitialConfig() + update_config(self.database, device_uuid, 'initial', initial_config_rules) - #LOGGER.info('[AddDevice] db_device = {:s}'.format(str(db_device.dump( - # include_config_rules=True, include_drivers=True, include_endpoints=True)))) + #LOGGER.info('[AddDevice] db_device = {:s}'.format(str(db_device.dump( + # include_config_rules=True, include_drivers=True, include_endpoints=True)))) - sync_device_to_context(db_device, self.context_client) - return DeviceId(**db_device.dump_id()) + sync_device_to_context(db_device, self.context_client) + return DeviceId(**db_device.dump_id()) + finally: + self.mutex_queues.signal_done(device_uuid) @safe_and_metered_rpc_method(METRICS, LOGGER) def ConfigureDevice(self, request : Device, context : grpc.ServicerContext) -> DeviceId: device_id = request.device_id device_uuid = device_id.device_uuid.uuid - sync_device_from_context(device_uuid, self.context_client, self.database) + self.mutex_queues.wait_my_turn(device_uuid) + try: + sync_device_from_context(device_uuid, self.context_client, self.database) - context_config_rules = get_config_rules(self.database, device_uuid, 'running') - context_config_rules = {config_rule[1]: config_rule[2] for config_rule in context_config_rules} - #LOGGER.info('[ConfigureDevice] context_config_rules = {:s}'.format(str(context_config_rules))) + context_config_rules = get_config_rules(self.database, device_uuid, 'running') + context_config_rules = {config_rule[1]: config_rule[2] for config_rule in context_config_rules} + #LOGGER.info('[ConfigureDevice] context_config_rules = {:s}'.format(str(context_config_rules))) - db_device,_ = update_device_in_local_database(self.database, request) + db_device,_ = update_device_in_local_database(self.database, request) - request_config_rules = grpc_config_rules_to_raw(request.device_config.config_rules) - #LOGGER.info('[ConfigureDevice] request_config_rules = {:s}'.format(str(request_config_rules))) + request_config_rules = grpc_config_rules_to_raw(request.device_config.config_rules) + #LOGGER.info('[ConfigureDevice] request_config_rules = {:s}'.format(str(request_config_rules))) - resources_to_set : List[Tuple[str, Any]] = [] # key, value - resources_to_delete : List[Tuple[str, Any]] = [] # key, value + resources_to_set : List[Tuple[str, Any]] = [] # key, value + resources_to_delete : List[Tuple[str, Any]] = [] # key, value - for config_rule in request_config_rules: - action, key, value = config_rule - if action == ORM_ConfigActionEnum.SET: - if (key not in context_config_rules) or (context_config_rules[key] != value): - resources_to_set.append((key, value)) - elif action == ORM_ConfigActionEnum.DELETE: - if key in context_config_rules: - resources_to_delete.append((key, value)) + for config_rule in request_config_rules: + action, key, value = config_rule + if action == ORM_ConfigActionEnum.SET: + if (key not in context_config_rules) or (context_config_rules[key] != value): + resources_to_set.append((key, value)) + elif action == ORM_ConfigActionEnum.DELETE: + if key in context_config_rules: + resources_to_delete.append((key, value)) - #LOGGER.info('[ConfigureDevice] resources_to_set = {:s}'.format(str(resources_to_set))) - #LOGGER.info('[ConfigureDevice] resources_to_delete = {:s}'.format(str(resources_to_delete))) + #LOGGER.info('[ConfigureDevice] resources_to_set = {:s}'.format(str(resources_to_set))) + #LOGGER.info('[ConfigureDevice] resources_to_delete = {:s}'.format(str(resources_to_delete))) - # TODO: use of datastores (might be virtual ones) to enable rollbacks + # TODO: use of datastores (might be virtual ones) to enable rollbacks - errors = [] + errors = [] - driver : _Driver = self.driver_instance_cache.get(device_uuid) - if driver is None: - errors.append('Device({:s}) has not been added to this Device instance'.format(str(device_uuid))) + driver : _Driver = self.driver_instance_cache.get(device_uuid) + if driver is None: + errors.append('Device({:s}) has not been added to this Device instance'.format(str(device_uuid))) + + if len(errors) == 0: + results_setconfig = driver.SetConfig(resources_to_set) + errors.extend(check_set_errors(resources_to_set, results_setconfig)) - if len(errors) == 0: - results_setconfig = driver.SetConfig(resources_to_set) - errors.extend(check_set_errors(resources_to_set, results_setconfig)) + if len(errors) == 0: + results_deleteconfig = driver.DeleteConfig(resources_to_delete) + errors.extend(check_delete_errors(resources_to_delete, results_deleteconfig)) - if len(errors) == 0: - results_deleteconfig = driver.DeleteConfig(resources_to_delete) - errors.extend(check_delete_errors(resources_to_delete, results_deleteconfig)) + if len(errors) > 0: + raise OperationFailedException('ConfigureDevice', extra_details=errors) - if len(errors) > 0: - raise OperationFailedException('ConfigureDevice', extra_details=errors) + running_config_rules = driver.GetConfig() + running_config_rules = [ + (ORM_ConfigActionEnum.SET, config_rule[0], json.dumps(config_rule[1], sort_keys=True)) + for config_rule in running_config_rules if not isinstance(config_rule[1], Exception) + ] + #for running_config_rule in running_config_rules: + # LOGGER.info('[ConfigureDevice] running_config_rule: {:s}'.format(str(running_config_rule))) + update_config(self.database, device_uuid, 'running', running_config_rules) - running_config_rules = driver.GetConfig() - running_config_rules = [ - (ORM_ConfigActionEnum.SET, config_rule[0], json.dumps(config_rule[1], sort_keys=True)) - for config_rule in running_config_rules if not isinstance(config_rule[1], Exception) - ] - #for running_config_rule in running_config_rules: - # LOGGER.info('[ConfigureDevice] running_config_rule: {:s}'.format(str(running_config_rule))) - update_config(self.database, device_uuid, 'running', running_config_rules) + sync_device_to_context(db_device, self.context_client) + return DeviceId(**db_device.dump_id()) + finally: + self.mutex_queues.signal_done(device_uuid) - sync_device_to_context(db_device, self.context_client) - return DeviceId(**db_device.dump_id()) @safe_and_metered_rpc_method(METRICS, LOGGER) def DeleteDevice(self, request : DeviceId, context : grpc.ServicerContext) -> Empty: device_uuid = request.device_uuid.uuid - self.monitoring_loops.remove(device_uuid) + self.mutex_queues.wait_my_turn(device_uuid) + try: + self.monitoring_loops.remove(device_uuid) - sync_device_from_context(device_uuid, self.context_client, self.database) - db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) - if db_device is None: return Empty() + sync_device_from_context(device_uuid, self.context_client, self.database) + db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) + if db_device is None: return Empty() - self.driver_instance_cache.delete(device_uuid) - delete_device_from_context(db_device, self.context_client) + self.driver_instance_cache.delete(device_uuid) + delete_device_from_context(db_device, self.context_client) - for db_kpi_pk,_ in db_device.references(KpiModel): - db_kpi = get_object(self.database, KpiModel, db_kpi_pk) - for db_endpoint_monitor_kpi_pk,_ in db_kpi.references(EndPointMonitorKpiModel): - get_object(self.database, EndPointMonitorKpiModel, db_endpoint_monitor_kpi_pk).delete() - db_kpi.delete() + for db_kpi_pk,_ in db_device.references(KpiModel): + db_kpi = get_object(self.database, KpiModel, db_kpi_pk) + for db_endpoint_monitor_kpi_pk,_ in db_kpi.references(EndPointMonitorKpiModel): + get_object(self.database, EndPointMonitorKpiModel, db_endpoint_monitor_kpi_pk).delete() + db_kpi.delete() - for db_endpoint_pk,_ in db_device.references(EndPointModel): - db_endpoint = EndPointModel(self.database, db_endpoint_pk) - for db_endpoint_monitor_pk,_ in db_endpoint.references(EndPointMonitorModel): - get_object(self.database, EndPointMonitorModel, db_endpoint_monitor_pk).delete() - db_endpoint.delete() + for db_endpoint_pk,_ in db_device.references(EndPointModel): + db_endpoint = EndPointModel(self.database, db_endpoint_pk) + for db_endpoint_monitor_pk,_ in db_endpoint.references(EndPointMonitorModel): + get_object(self.database, EndPointMonitorModel, db_endpoint_monitor_pk).delete() + db_endpoint.delete() - for db_driver_pk,_ in db_device.references(DriverModel): - get_object(self.database, DriverModel, db_driver_pk).delete() + for db_driver_pk,_ in db_device.references(DriverModel): + get_object(self.database, DriverModel, db_driver_pk).delete() - db_initial_config = ConfigModel(self.database, db_device.device_initial_config_fk) - for db_config_rule_pk,_ in db_initial_config.references(ConfigRuleModel): - get_object(self.database, ConfigRuleModel, db_config_rule_pk).delete() + db_initial_config = ConfigModel(self.database, db_device.device_initial_config_fk) + for db_config_rule_pk,_ in db_initial_config.references(ConfigRuleModel): + get_object(self.database, ConfigRuleModel, db_config_rule_pk).delete() - db_running_config = ConfigModel(self.database, db_device.device_running_config_fk) - for db_config_rule_pk,_ in db_running_config.references(ConfigRuleModel): - get_object(self.database, ConfigRuleModel, db_config_rule_pk).delete() + db_running_config = ConfigModel(self.database, db_device.device_running_config_fk) + for db_config_rule_pk,_ in db_running_config.references(ConfigRuleModel): + get_object(self.database, ConfigRuleModel, db_config_rule_pk).delete() - db_device.delete() - db_initial_config.delete() - db_running_config.delete() - return Empty() + db_device.delete() + db_initial_config.delete() + db_running_config.delete() + return Empty() + finally: + self.mutex_queues.signal_done(device_uuid) @safe_and_metered_rpc_method(METRICS, LOGGER) def GetInitialConfig(self, request : DeviceId, context : grpc.ServicerContext) -> DeviceConfig: device_uuid = request.device_uuid.uuid - sync_device_from_context(device_uuid, self.context_client, self.database) - db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) + self.mutex_queues.wait_my_turn(device_uuid) + try: + sync_device_from_context(device_uuid, self.context_client, self.database) + db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) - config_rules = {} if db_device is None else db_device.dump_initial_config() - return DeviceConfig(config_rules=config_rules) + config_rules = {} if db_device is None else db_device.dump_initial_config() + device_config = DeviceConfig(config_rules=config_rules) + return device_config + finally: + self.mutex_queues.signal_done(device_uuid) @safe_and_metered_rpc_method(METRICS, LOGGER) def MonitorDeviceKpi(self, request : MonitoringSettings, context : grpc.ServicerContext) -> Empty: kpi_uuid = request.kpi_id.kpi_id.uuid + device_uuid = request.kpi_descriptor.device_id.device_uuid.uuid + self.mutex_queues.wait_my_turn(device_uuid) + try: + subscribe = (request.sampling_duration_s > 0.0) and (request.sampling_interval_s > 0.0) + if subscribe: + db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) + if db_device is None: + msg = 'Device({:s}) has not been added to this Device instance.'.format(str(device_uuid)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + endpoint_id = request.kpi_descriptor.endpoint_id + endpoint_uuid = endpoint_id.endpoint_uuid.uuid + str_endpoint_key = key_to_str([device_uuid, endpoint_uuid]) + endpoint_topology_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid + endpoint_topology_uuid = endpoint_id.topology_id.topology_uuid.uuid + if len(endpoint_topology_context_uuid) > 0 and len(endpoint_topology_uuid) > 0: + str_topology_key = key_to_str([endpoint_topology_context_uuid, endpoint_topology_uuid]) + str_endpoint_key = key_to_str([str_endpoint_key, str_topology_key], separator=':') + db_endpoint : EndPointModel = get_object( + self.database, EndPointModel, str_endpoint_key, raise_if_not_found=False) + if db_endpoint is None: + msg = 'Device({:s})/EndPoint({:s}) not found. EndPointKey({:s})'.format( + str(device_uuid), str(endpoint_uuid), str(str_endpoint_key)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + driver : _Driver = self.driver_instance_cache.get(device_uuid) + if driver is None: + msg = 'Device({:s}) has not been added to this Device instance'.format(str(device_uuid)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + sample_type = request.kpi_descriptor.kpi_sample_type + + attributes = { + 'kpi_uuid' : request.kpi_id.kpi_id.uuid, + 'kpi_description' : request.kpi_descriptor.kpi_description, + 'kpi_sample_type' : grpc_to_enum__kpi_sample_type(sample_type), + 'device_fk' : db_device, + 'endpoint_fk' : db_endpoint, + 'sampling_duration': request.sampling_duration_s, + 'sampling_interval': request.sampling_interval_s, + } + result : Tuple[KpiModel, bool] = update_or_create_object(self.database, KpiModel, kpi_uuid, attributes) + db_kpi, updated = result + + str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) + db_endpoint_monitor : EndPointMonitorModel = get_object( + self.database, EndPointMonitorModel, str_endpoint_monitor_key, raise_if_not_found=False) + if db_endpoint_monitor is None: + msg = 'SampleType({:s}/{:s}) not supported for Device({:s})/EndPoint({:s}).'.format( + str(sample_type), str(KpiSampleType.Name(sample_type).upper().replace('KPISAMPLETYPE_', '')), + str(device_uuid), str(endpoint_uuid)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + endpoint_monitor_resource_key = re.sub('[^A-Za-z0-9]', '.', db_endpoint_monitor.resource_key) + str_endpoint_monitor_kpi_key = key_to_str([device_uuid, endpoint_monitor_resource_key], separator=':') + attributes = { + 'endpoint_monitor_fk': db_endpoint_monitor, + 'kpi_fk' : db_kpi, + } + result : Tuple[EndPointMonitorKpiModel, bool] = update_or_create_object( + self.database, EndPointMonitorKpiModel, str_endpoint_monitor_kpi_key, attributes) + db_endpoint_monitor_kpi, updated = result + + resources_to_subscribe : List[Tuple[str, float, float]] = [] # key, sampling_duration, sampling_interval + resources_to_subscribe.append( + (db_endpoint_monitor.resource_key, db_kpi.sampling_duration, db_kpi.sampling_interval)) + results_subscribestate = driver.SubscribeState(resources_to_subscribe) + errors = check_subscribe_errors(resources_to_subscribe, results_subscribestate) + if len(errors) > 0: raise OperationFailedException('MonitorDeviceKpi', extra_details=errors) + + self.monitoring_loops.add(device_uuid, driver) - subscribe = (request.sampling_duration_s > 0.0) and (request.sampling_interval_s > 0.0) - if subscribe: - device_uuid = request.kpi_descriptor.device_id.device_uuid.uuid - - db_device : DeviceModel = get_object(self.database, DeviceModel, device_uuid, raise_if_not_found=False) - if db_device is None: - msg = 'Device({:s}) has not been added to this Device instance.'.format(str(device_uuid)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - endpoint_id = request.kpi_descriptor.endpoint_id - endpoint_uuid = endpoint_id.endpoint_uuid.uuid - str_endpoint_key = key_to_str([device_uuid, endpoint_uuid]) - endpoint_topology_context_uuid = endpoint_id.topology_id.context_id.context_uuid.uuid - endpoint_topology_uuid = endpoint_id.topology_id.topology_uuid.uuid - if len(endpoint_topology_context_uuid) > 0 and len(endpoint_topology_uuid) > 0: - str_topology_key = key_to_str([endpoint_topology_context_uuid, endpoint_topology_uuid]) - str_endpoint_key = key_to_str([str_endpoint_key, str_topology_key], separator=':') - db_endpoint : EndPointModel = get_object( - self.database, EndPointModel, str_endpoint_key, raise_if_not_found=False) - if db_endpoint is None: - msg = 'Device({:s})/EndPoint({:s}) not found. EndPointKey({:s})'.format( - str(device_uuid), str(endpoint_uuid), str(str_endpoint_key)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - driver : _Driver = self.driver_instance_cache.get(device_uuid) - if driver is None: - msg = 'Device({:s}) has not been added to this Device instance'.format(str(device_uuid)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - sample_type = request.kpi_descriptor.kpi_sample_type - - attributes = { - 'kpi_uuid' : request.kpi_id.kpi_id.uuid, - 'kpi_description' : request.kpi_descriptor.kpi_description, - 'kpi_sample_type' : grpc_to_enum__kpi_sample_type(sample_type), - 'device_fk' : db_device, - 'endpoint_fk' : db_endpoint, - 'sampling_duration': request.sampling_duration_s, - 'sampling_interval': request.sampling_interval_s, - } - result : Tuple[KpiModel, bool] = update_or_create_object(self.database, KpiModel, kpi_uuid, attributes) - db_kpi, updated = result - - str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) - db_endpoint_monitor : EndPointMonitorModel = get_object( - self.database, EndPointMonitorModel, str_endpoint_monitor_key, raise_if_not_found=False) - if db_endpoint_monitor is None: - msg = 'SampleType({:s}/{:s}) not supported for Device({:s})/EndPoint({:s}).'.format( - str(sample_type), str(KpiSampleType.Name(sample_type).upper().replace('KPISAMPLETYPE_', '')), - str(device_uuid), str(endpoint_uuid)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - endpoint_monitor_resource_key = re.sub('[^A-Za-z0-9]', '.', db_endpoint_monitor.resource_key) - str_endpoint_monitor_kpi_key = key_to_str([device_uuid, endpoint_monitor_resource_key], separator=':') - attributes = { - 'endpoint_monitor_fk': db_endpoint_monitor, - 'kpi_fk' : db_kpi, - } - result : Tuple[EndPointMonitorKpiModel, bool] = update_or_create_object( - self.database, EndPointMonitorKpiModel, str_endpoint_monitor_kpi_key, attributes) - db_endpoint_monitor_kpi, updated = result - - resources_to_subscribe : List[Tuple[str, float, float]] = [] # key, sampling_duration, sampling_interval - resources_to_subscribe.append( - (db_endpoint_monitor.resource_key, db_kpi.sampling_duration, db_kpi.sampling_interval)) - results_subscribestate = driver.SubscribeState(resources_to_subscribe) - errors = check_subscribe_errors(resources_to_subscribe, results_subscribestate) - if len(errors) > 0: raise OperationFailedException('MonitorDeviceKpi', extra_details=errors) - - self.monitoring_loops.add(device_uuid, driver) - - else: - db_kpi : KpiModel = get_object( - self.database, KpiModel, kpi_uuid, raise_if_not_found=False) - if db_kpi is None: - msg = 'Kpi({:s}) not found'.format(str(kpi_uuid)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - db_device : DeviceModel = get_object( - self.database, DeviceModel, db_kpi.device_fk, raise_if_not_found=False) - if db_device is None: - msg = 'Device({:s}) not found'.format(str(db_kpi.device_fk)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - device_uuid = db_device.device_uuid - - db_endpoint : EndPointModel = get_object( - self.database, EndPointModel, db_kpi.endpoint_fk, raise_if_not_found=False) - if db_endpoint is None: - msg = 'EndPoint({:s}) not found'.format(str(db_kpi.endpoint_fk)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - endpoint_uuid = db_endpoint.endpoint_uuid - str_endpoint_key = db_endpoint.pk - - kpi_sample_type : ORM_KpiSampleTypeEnum = db_kpi.kpi_sample_type - sample_type = kpi_sample_type.value - str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) - db_endpoint_monitor : EndPointMonitorModel = get_object( - self.database, EndPointMonitorModel, str_endpoint_monitor_key, raise_if_not_found=False) - if db_endpoint_monitor is None: - msg = 'EndPointMonitor({:s}) not found.'.format(str(str_endpoint_monitor_key)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - endpoint_monitor_resource_key = re.sub('[^A-Za-z0-9]', '.', db_endpoint_monitor.resource_key) - str_endpoint_monitor_kpi_key = key_to_str([device_uuid, endpoint_monitor_resource_key], separator=':') - db_endpoint_monitor_kpi : EndPointMonitorKpiModel = get_object( - self.database, EndPointMonitorKpiModel, str_endpoint_monitor_kpi_key, raise_if_not_found=False) - if db_endpoint_monitor_kpi is None: - msg = 'EndPointMonitorKpi({:s}) not found.'.format(str(str_endpoint_monitor_kpi_key)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - resources_to_unsubscribe : List[Tuple[str, float, float]] = [] # key, sampling_duration, sampling_interval - resources_to_unsubscribe.append( - (db_endpoint_monitor.resource_key, db_kpi.sampling_duration, db_kpi.sampling_interval)) - - driver : _Driver = self.driver_instance_cache.get(device_uuid) - if driver is None: - msg = 'Device({:s}) has not been added to this Device instance'.format(str(device_uuid)) - raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) - - results_unsubscribestate = driver.UnsubscribeState(resources_to_unsubscribe) - errors = check_unsubscribe_errors(resources_to_unsubscribe, results_unsubscribestate) - if len(errors) > 0: raise OperationFailedException('MonitorDeviceKpi', extra_details=errors) - - db_endpoint_monitor_kpi.delete() - db_kpi.delete() - - # There is one monitoring loop per device; keep them active since they are re-used by different monitoring - # requests. - #self.monitoring_loops.remove(device_uuid) - - # Subscriptions are not stored as classical driver config. - # TODO: consider adding it somehow in the configuration. - # Warning: GetConfig might be very slow in OpenConfig devices - #running_config_rules = [ - # (config_rule[0], json.dumps(config_rule[1], sort_keys=True)) - # for config_rule in driver.GetConfig() - #] - #context_config_rules = { - # config_rule[1]: config_rule[2] - # for config_rule in get_config_rules(self.database, device_uuid, 'running') - #} - - ## each in context, not in running => delete in context - ## each in running, not in context => add to context - ## each in context and in running, context.value != running.value => update in context - #running_config_rules_actions : List[Tuple[ORM_ConfigActionEnum, str, str]] = [] - #for config_rule_key,config_rule_value in running_config_rules: - # running_config_rules_actions.append((ORM_ConfigActionEnum.SET, config_rule_key, config_rule_value)) - # context_config_rules.pop(config_rule_key, None) - #for context_rule_key,context_rule_value in context_config_rules.items(): - # running_config_rules_actions.append((ORM_ConfigActionEnum.DELETE, context_rule_key, context_rule_value)) - - ##msg = '[MonitorDeviceKpi] running_config_rules_action[{:d}]: {:s}' - ##for i,running_config_rules_action in enumerate(running_config_rules_actions): - ## LOGGER.info(msg.format(i, str(running_config_rules_action))) - #update_config(self.database, device_uuid, 'running', running_config_rules_actions) - - sync_device_to_context(db_device, self.context_client) - return Empty() + else: + db_kpi : KpiModel = get_object( + self.database, KpiModel, kpi_uuid, raise_if_not_found=False) + if db_kpi is None: + msg = 'Kpi({:s}) not found'.format(str(kpi_uuid)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + db_device : DeviceModel = get_object( + self.database, DeviceModel, db_kpi.device_fk, raise_if_not_found=False) + if db_device is None: + msg = 'Device({:s}) not found'.format(str(db_kpi.device_fk)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + device_uuid = db_device.device_uuid + + db_endpoint : EndPointModel = get_object( + self.database, EndPointModel, db_kpi.endpoint_fk, raise_if_not_found=False) + if db_endpoint is None: + msg = 'EndPoint({:s}) not found'.format(str(db_kpi.endpoint_fk)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + endpoint_uuid = db_endpoint.endpoint_uuid + str_endpoint_key = db_endpoint.pk + + kpi_sample_type : ORM_KpiSampleTypeEnum = db_kpi.kpi_sample_type + sample_type = kpi_sample_type.value + str_endpoint_monitor_key = key_to_str([str_endpoint_key, str(sample_type)]) + db_endpoint_monitor : EndPointMonitorModel = get_object( + self.database, EndPointMonitorModel, str_endpoint_monitor_key, raise_if_not_found=False) + if db_endpoint_monitor is None: + msg = 'EndPointMonitor({:s}) not found.'.format(str(str_endpoint_monitor_key)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + endpoint_monitor_resource_key = re.sub('[^A-Za-z0-9]', '.', db_endpoint_monitor.resource_key) + str_endpoint_monitor_kpi_key = key_to_str([device_uuid, endpoint_monitor_resource_key], separator=':') + db_endpoint_monitor_kpi : EndPointMonitorKpiModel = get_object( + self.database, EndPointMonitorKpiModel, str_endpoint_monitor_kpi_key, raise_if_not_found=False) + if db_endpoint_monitor_kpi is None: + msg = 'EndPointMonitorKpi({:s}) not found.'.format(str(str_endpoint_monitor_kpi_key)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + resources_to_unsubscribe : List[Tuple[str, float, float]] = [] # key, sampling_duration, sampling_interval + resources_to_unsubscribe.append( + (db_endpoint_monitor.resource_key, db_kpi.sampling_duration, db_kpi.sampling_interval)) + + driver : _Driver = self.driver_instance_cache.get(device_uuid) + if driver is None: + msg = 'Device({:s}) has not been added to this Device instance'.format(str(device_uuid)) + raise OperationFailedException('MonitorDeviceKpi', extra_details=msg) + + results_unsubscribestate = driver.UnsubscribeState(resources_to_unsubscribe) + errors = check_unsubscribe_errors(resources_to_unsubscribe, results_unsubscribestate) + if len(errors) > 0: raise OperationFailedException('MonitorDeviceKpi', extra_details=errors) + + db_endpoint_monitor_kpi.delete() + db_kpi.delete() + + # There is one monitoring loop per device; keep them active since they are re-used by different monitoring + # requests. + #self.monitoring_loops.remove(device_uuid) + + # Subscriptions are not stored as classical driver config. + # TODO: consider adding it somehow in the configuration. + # Warning: GetConfig might be very slow in OpenConfig devices + #running_config_rules = [ + # (config_rule[0], json.dumps(config_rule[1], sort_keys=True)) + # for config_rule in driver.GetConfig() + #] + #context_config_rules = { + # config_rule[1]: config_rule[2] + # for config_rule in get_config_rules(self.database, device_uuid, 'running') + #} + + ## each in context, not in running => delete in context + ## each in running, not in context => add to context + ## each in context and in running, context.value != running.value => update in context + #running_config_rules_actions : List[Tuple[ORM_ConfigActionEnum, str, str]] = [] + #for config_rule_key,config_rule_value in running_config_rules: + # running_config_rules_actions.append((ORM_ConfigActionEnum.SET, config_rule_key, config_rule_value)) + # context_config_rules.pop(config_rule_key, None) + #for context_rule_key,context_rule_value in context_config_rules.items(): + # running_config_rules_actions.append((ORM_ConfigActionEnum.DELETE, context_rule_key, context_rule_value)) + + ##msg = '[MonitorDeviceKpi] running_config_rules_action[{:d}]: {:s}' + ##for i,running_config_rules_action in enumerate(running_config_rules_actions): + ## LOGGER.info(msg.format(i, str(running_config_rules_action))) + #update_config(self.database, device_uuid, 'running', running_config_rules_actions) + + sync_device_to_context(db_device, self.context_client) + return Empty() + finally: + self.mutex_queues.signal_done(device_uuid) diff --git a/src/device/service/__main__.py b/src/device/service/__main__.py index 1f0adfa8f1dd8b3e307ed202967b1d5195171f11..5c9b41531e7bc579cbe5cc563f20b193f6bc5a90 100644 --- a/src/device/service/__main__.py +++ b/src/device/service/__main__.py @@ -34,7 +34,7 @@ def main(): global LOGGER # pylint: disable=global-statement log_level = get_log_level() - logging.basicConfig(level=log_level) + logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") logging.getLogger('apscheduler.executors.default').setLevel(logging.WARNING) logging.getLogger('apscheduler.scheduler').setLevel(logging.WARNING) logging.getLogger('monitoring-client').setLevel(logging.WARNING) diff --git a/src/device/service/database/EndPointModel.py b/src/device/service/database/EndPointModel.py index 84d0c97073481af162b1e66f7e35c93bc6e1eed5..3d4435737349809c527c80546ed412e621afcbdd 100644 --- a/src/device/service/database/EndPointModel.py +++ b/src/device/service/database/EndPointModel.py @@ -34,7 +34,6 @@ class EndPointModel(Model): device_fk = ForeignKeyField(DeviceModel) endpoint_uuid = StringField(required=True, allow_empty=False) endpoint_type = StringField() - resource_key = StringField(required=True, allow_empty=False) def dump_id(self) -> Dict: device_id = DeviceModel(self.database, self.device_fk).dump_id() @@ -74,13 +73,7 @@ def set_endpoint_monitors(database : Database, db_endpoint : EndPointModel, grpc for kpi_sample_type in grpc_endpoint_kpi_sample_types: orm_kpi_sample_type = grpc_to_enum__kpi_sample_type(kpi_sample_type) str_endpoint_kpi_sample_type_key = key_to_str([db_endpoint_pk, str(orm_kpi_sample_type.value)]) - #db_endpoint_kpi_sample_type = EndPointMonitorModel(database, str_endpoint_kpi_sample_type_key) - #db_endpoint_kpi_sample_type.endpoint_fk = db_endpoint - #db_endpoint_kpi_sample_type.resource_key = '' # during initialization, allow empty value - #db_endpoint_kpi_sample_type.kpi_sample_type = orm_kpi_sample_type - #db_endpoint_kpi_sample_type.save() update_or_create_object(database, EndPointMonitorModel, str_endpoint_kpi_sample_type_key, { 'endpoint_fk' : db_endpoint, - #'resource_key' : '', # during initialization, allow empty value 'kpi_sample_type': orm_kpi_sample_type, }) diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index 1187b3de36cbf4d16fed1b3e18c0cb1fa21cafa9..535b553a81c24ea12c4b9fefc1563541e45f77fa 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -25,22 +25,52 @@ DRIVERS = [] from .emulated.EmulatedDriver import EmulatedDriver # pylint: disable=wrong-import-position DRIVERS.append( (EmulatedDriver, [ + # TODO: multi-filter is not working { - # Driver==unspecified & no device type specified => use Emulated - FilterFieldEnum.DRIVER: ORM_DeviceDriverEnum.UNDEFINED, - }, - { - # Emulated OLS/Packet Router, specifying Undefined/OpenConfig/TAPI Driver => use EmulatedDriver FilterFieldEnum.DEVICE_TYPE: [ + DeviceTypeEnum.EMULATED_DATACENTER, + DeviceTypeEnum.EMULATED_MICROVAWE_RADIO_SYSTEM, DeviceTypeEnum.EMULATED_OPEN_LINE_SYSTEM, + DeviceTypeEnum.EMULATED_OPTICAL_ROADM, + DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER, + DeviceTypeEnum.EMULATED_P4_SWITCH, DeviceTypeEnum.EMULATED_PACKET_ROUTER, + DeviceTypeEnum.EMULATED_PACKET_SWITCH, + + #DeviceTypeEnum.DATACENTER, + #DeviceTypeEnum.MICROVAWE_RADIO_SYSTEM, + #DeviceTypeEnum.OPEN_LINE_SYSTEM, + #DeviceTypeEnum.OPTICAL_ROADM, + #DeviceTypeEnum.OPTICAL_TRANSPONDER, + #DeviceTypeEnum.P4_SWITCH, + #DeviceTypeEnum.PACKET_ROUTER, + #DeviceTypeEnum.PACKET_SWITCH, ], - FilterFieldEnum.DRIVER : [ + FilterFieldEnum.DRIVER: [ ORM_DeviceDriverEnum.UNDEFINED, - ORM_DeviceDriverEnum.OPENCONFIG, - ORM_DeviceDriverEnum.TRANSPORT_API ], - } + }, + #{ + # # Emulated devices, all drivers => use Emulated + # FilterFieldEnum.DEVICE_TYPE: [ + # DeviceTypeEnum.EMULATED_DATACENTER, + # DeviceTypeEnum.EMULATED_MICROVAWE_RADIO_SYSTEM, + # DeviceTypeEnum.EMULATED_OPEN_LINE_SYSTEM, + # DeviceTypeEnum.EMULATED_OPTICAL_ROADM, + # DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER, + # DeviceTypeEnum.EMULATED_P4_SWITCH, + # DeviceTypeEnum.EMULATED_PACKET_ROUTER, + # DeviceTypeEnum.EMULATED_PACKET_SWITCH, + # ], + # FilterFieldEnum.DRIVER: [ + # ORM_DeviceDriverEnum.UNDEFINED, + # ORM_DeviceDriverEnum.OPENCONFIG, + # ORM_DeviceDriverEnum.TRANSPORT_API, + # ORM_DeviceDriverEnum.P4, + # ORM_DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, + # ORM_DeviceDriverEnum.ONF_TR_352, + # ], + #} ])) if LOAD_ALL_DEVICE_DRIVERS: @@ -60,7 +90,7 @@ if LOAD_ALL_DEVICE_DRIVERS: (TransportApiDriver, [ { # Real OLS, specifying TAPI Driver => use TransportApiDriver - FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.OPTICAL_LINE_SYSTEM, + FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.OPEN_LINE_SYSTEM, FilterFieldEnum.DRIVER : ORM_DeviceDriverEnum.TRANSPORT_API, } ])) diff --git a/src/device/service/drivers/openconfig/OpenConfigDriver.py b/src/device/service/drivers/openconfig/OpenConfigDriver.py index dd41096ec25fb74f1b1b855c98f90e09fee33194..9342e650b9fadb21fa1b65fb951a08ae6f066a3c 100644 --- a/src/device/service/drivers/openconfig/OpenConfigDriver.py +++ b/src/device/service/drivers/openconfig/OpenConfigDriver.py @@ -61,11 +61,13 @@ class NetconfSessionHandler: self.__port = int(port) self.__username = settings.get('username') self.__password = settings.get('password') + self.__vendor = settings.get('vendor') self.__key_filename = settings.get('key_filename') self.__hostkey_verify = settings.get('hostkey_verify', True) self.__look_for_keys = settings.get('look_for_keys', True) self.__allow_agent = settings.get('allow_agent', True) self.__force_running = settings.get('force_running', False) + self.__commit_per_delete = settings.get('delete_rule', False) self.__device_params = settings.get('device_params', {}) self.__manager_params = settings.get('manager_params', {}) self.__nc_params = settings.get('nc_params', {}) @@ -90,6 +92,12 @@ class NetconfSessionHandler: @property def use_candidate(self): return self.__candidate_supported and not self.__force_running + @property + def commit_per_rule(self): return self.__commit_per_delete + + @property + def vendor(self): return self.__vendor + @RETRY_DECORATOR def get(self, filter=None, with_defaults=None): # pylint: disable=redefined-builtin with self.__lock: @@ -181,8 +189,9 @@ def do_sampling(samples_cache : SamplesCache, resource_key : str, out_samples : LOGGER.exception('Error retrieving samples') def edit_config( - netconf_handler : NetconfSessionHandler, resources : List[Tuple[str, Any]], delete=False, target='running', - default_operation='merge', test_option=None, error_option=None, format='xml' # pylint: disable=redefined-builtin + netconf_handler : NetconfSessionHandler, resources : List[Tuple[str, Any]], delete=False, commit_per_rule= False, + target='running', default_operation='merge', test_option=None, error_option=None, + format='xml' # pylint: disable=redefined-builtin ): str_method = 'DeleteConfig' if delete else 'SetConfig' LOGGER.info('[{:s}] resources = {:s}'.format(str_method, str(resources))) @@ -195,13 +204,16 @@ def edit_config( chk_length(str_resource_name, resource, min_length=2, max_length=2) resource_key,resource_value = resource chk_string(str_resource_name + '.key', resource_key, allow_empty=False) - str_config_message = compose_config(resource_key, resource_value, delete=delete) + str_config_message = compose_config( + resource_key, resource_value, delete=delete, vendor=netconf_handler.vendor) if str_config_message is None: raise UnsupportedResourceKeyException(resource_key) LOGGER.info('[{:s}] str_config_message[{:d}] = {:s}'.format( str_method, len(str_config_message), str(str_config_message))) netconf_handler.edit_config( config=str_config_message, target=target, default_operation=default_operation, test_option=test_option, error_option=error_option, format=format) + if commit_per_rule: + netconf_handler.commit() results[i] = True except Exception as e: # pylint: disable=broad-except str_operation = 'preparing' if target == 'candidate' else ('deleting' if delete else 'setting') @@ -278,12 +290,15 @@ class OpenConfigDriver(_Driver): with self.__lock: if self.__netconf_handler.use_candidate: with self.__netconf_handler.locked(target='candidate'): - results = edit_config(self.__netconf_handler, resources, target='candidate') - try: - self.__netconf_handler.commit() - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('[SetConfig] Exception commiting resources: {:s}'.format(str(resources))) - results = [e for _ in resources] # if commit fails, set exception in each resource + if self.__netconf_handler.commit_per_rule: + results = edit_config(self.__netconf_handler, resources, target='candidate', commit_per_rule= True) + else: + results = edit_config(self.__netconf_handler, resources, target='candidate') + try: + self.__netconf_handler.commit() + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('[SetConfig] Exception commiting resources: {:s}'.format(str(resources))) + results = [e for _ in resources] # if commit fails, set exception in each resource else: results = edit_config(self.__netconf_handler, resources) return results @@ -294,12 +309,15 @@ class OpenConfigDriver(_Driver): with self.__lock: if self.__netconf_handler.use_candidate: with self.__netconf_handler.locked(target='candidate'): - results = edit_config(self.__netconf_handler, resources, target='candidate', delete=True) - try: - self.__netconf_handler.commit() - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('[DeleteConfig] Exception commiting resources: {:s}'.format(str(resources))) - results = [e for _ in resources] # if commit fails, set exception in each resource + if self.__netconf_handler.commit_per_rule: + results = edit_config(self.__netconf_handler, resources, target='candidate', delete=True, commit_per_rule= True) + else: + results = edit_config(self.__netconf_handler, resources, target='candidate', delete=True) + try: + self.__netconf_handler.commit() + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('[DeleteConfig] Exception commiting resources: {:s}'.format(str(resources))) + results = [e for _ in resources] # if commit fails, set exception in each resource else: results = edit_config(self.__netconf_handler, resources, delete=True) return results diff --git a/src/device/service/drivers/openconfig/templates/EndPoints.py b/src/device/service/drivers/openconfig/templates/EndPoints.py index c11b1669d5b4cf3ca47986817ded28f75ae8358f..9bd2e75ac4da0965c91b9154046694fd352dc4f6 100644 --- a/src/device/service/drivers/openconfig/templates/EndPoints.py +++ b/src/device/service/drivers/openconfig/templates/EndPoints.py @@ -20,7 +20,7 @@ from .Tools import add_value_from_collection, add_value_from_tag LOGGER = logging.getLogger(__name__) -XPATH_PORTS = "//ocp:components/ocp:component/ocp:state[ocp:type='PORT']/.." +XPATH_PORTS = "//ocp:components/ocp:component" XPATH_IFACE_COUNTER = "//oci:interfaces/oci:interface[oci:name='{:s}']/state/counters/{:s}" def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: @@ -28,6 +28,13 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: for xml_component in xml_data.xpath(XPATH_PORTS, namespaces=NAMESPACES): #LOGGER.info('xml_component = {:s}'.format(str(ET.tostring(xml_component)))) + component_type = xml_component.find('ocp:state/ocp:type', namespaces=NAMESPACES) + if component_type is None or component_type.text is None: continue + component_type = component_type.text + if component_type not in {'PORT', 'oc-platform-types:PORT'}: continue + + LOGGER.info('PORT xml_component = {:s}'.format(str(ET.tostring(xml_component)))) + endpoint = {} component_name = xml_component.find('ocp:name', namespaces=NAMESPACES) @@ -37,6 +44,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: component_type = xml_component.find( 'ocpp:port/ocpp:breakout-mode/ocpp:state/ocpp:channel-speed', namespaces=NAMESPACES) add_value_from_tag(endpoint, 'type', component_type) + if 'type' not in endpoint: endpoint['type'] = '-' sample_types = { ORM_KpiSampleTypeEnum.BYTES_RECEIVED.value : XPATH_IFACE_COUNTER.format(endpoint['uuid'], 'in-octets' ), diff --git a/src/device/service/drivers/openconfig/templates/Interfaces.py b/src/device/service/drivers/openconfig/templates/Interfaces.py index 33f977524c6f65655fbe17f6d2d95a7cfc223967..3f5b104f2de01137c2424e776dc60b8416088de6 100644 --- a/src/device/service/drivers/openconfig/templates/Interfaces.py +++ b/src/device/service/drivers/openconfig/templates/Interfaces.py @@ -37,6 +37,10 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: #interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES) #add_value_from_tag(interface, 'type', interface_type) + interface_type = xml_interface.find('oci:config/oci:type', namespaces=NAMESPACES) + interface_type.text = interface_type.text.replace('ianaift:','') + add_value_from_tag(interface, 'type', interface_type) + interface_mtu = xml_interface.find('oci:config/oci:mtu', namespaces=NAMESPACES) add_value_from_tag(interface, 'mtu', interface_mtu, cast=int) @@ -49,12 +53,15 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: subinterface = {} add_value_from_tag(subinterface, 'name', interface_name) + add_value_from_tag(subinterface, 'mtu', interface_mtu) + add_value_from_tag(subinterface, 'type', interface_type) + subinterface_index = xml_subinterface.find('oci:index', namespaces=NAMESPACES) if subinterface_index is None or subinterface_index.text is None: continue add_value_from_tag(subinterface, 'index', subinterface_index, cast=int) - vlan_id = xml_subinterface.find('ocv:vlan/ocv:config/ocv:vlan-id', namespaces=NAMESPACES) + vlan_id = xml_subinterface.find('ocv:vlan/ocv:match/ocv:single-tagged/ocv:config/ocv:vlan-id', namespaces=NAMESPACES) add_value_from_tag(subinterface, 'vlan_id', vlan_id, cast=int) # TODO: implement support for multiple IP addresses per subinterface diff --git a/src/device/service/drivers/openconfig/templates/NetworkInstances.py b/src/device/service/drivers/openconfig/templates/NetworkInstances.py index b091a0d206195a6c2ce94008628071cd9e30944f..8399402fa76b8b6b00829493cc8ebd28fd6018f4 100644 --- a/src/device/service/drivers/openconfig/templates/NetworkInstances.py +++ b/src/device/service/drivers/openconfig/templates/NetworkInstances.py @@ -27,6 +27,9 @@ XPATH_NI_IIP_AP = ".//ocni:inter-instance-policies/ocni:apply-policy" XPATH_NI_IIP_AP_IMPORT = ".//ocni:config/ocni:import-policy" XPATH_NI_IIP_AP_EXPORT = ".//ocni:config/ocni:export-policy" +XPATH_NI_CPOINTS = ".//ocni:connection-points/ocni:connection-point" +XPATH_NI_CPOINTS_ENDPOINT = ".//ocni:endpoints/ocni:endpoint/ocni:remote/ocni:config" + def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: response = [] for xml_network_instance in xml_data.xpath(XPATH_NETWORK_INSTANCES, namespaces=NAMESPACES): @@ -39,10 +42,11 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: add_value_from_tag(network_instance, 'name', ni_name) ni_type = xml_network_instance.find('ocni:config/ocni:type', namespaces=NAMESPACES) + ni_type.text = ni_type.text.replace('oc-ni-types:','') add_value_from_tag(network_instance, 'type', ni_type) - #ni_router_id = xml_network_instance.find('ocni:config/ocni:router-id', namespaces=NAMESPACES) - #add_value_from_tag(network_instance, 'router_id', ni_router_id) + ni_router_id = xml_network_instance.find('ocni:config/ocni:router-id', namespaces=NAMESPACES) + add_value_from_tag(network_instance, 'router_id', ni_router_id) ni_route_dist = xml_network_instance.find('ocni:config/ocni:route-distinguisher', namespaces=NAMESPACES) add_value_from_tag(network_instance, 'route_distinguisher', ni_route_dist) @@ -53,6 +57,20 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: if len(network_instance) == 0: continue response.append(('/network_instance[{:s}]'.format(network_instance['name']), network_instance)) + for xml_cpoints in xml_network_instance.xpath(XPATH_NI_PROTOCOLS, namespaces=NAMESPACES): + cpoint = {} + add_value_from_tag(cpoint, 'name', ni_name) + + connection_point = xml_cpoints.find('ocni:connection-point-id', namespaces=NAMESPACES) + add_value_from_tag(cpoint, 'connection_point', connection_point) + + for xml_endpoint in xml_cpoints.xpath(XPATH_NI_CPOINTS_ENDPOINT, namespaces=NAMESPACES): + remote_system = xml_endpoint.find('ocni:remote-system', namespaces=NAMESPACES) + add_value_from_tag(cpoint, 'remote_system', remote_system) + + VC_ID = xml_endpoint.find('ocni:virtual-circuit-identifier', namespaces=NAMESPACES) + add_value_from_tag(cpoint, 'VC_ID', VC_ID) + for xml_protocol in xml_network_instance.xpath(XPATH_NI_PROTOCOLS, namespaces=NAMESPACES): #LOGGER.info('xml_protocol = {:s}'.format(str(ET.tostring(xml_protocol)))) @@ -71,6 +89,8 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: if protocol['identifier'] == 'BGP': bgp_as = xml_protocol.find('ocni:bgp/ocni:global/ocni:config/ocni:as', namespaces=NAMESPACES) add_value_from_tag(protocol, 'as', bgp_as, cast=int) + bgp_id = xml_protocol.find('ocni:bgp/ocni:global/ocni:config/ocni:router-id', namespaces=NAMESPACES) + add_value_from_tag(protocol, 'router_id', bgp_id) resource_key = '/network_instance[{:s}]/protocols[{:s}]'.format( network_instance['name'], protocol['identifier']) @@ -94,7 +114,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: add_value_from_tag(table_connection, 'address_family', address_family, cast=lambda s: s.replace('oc-types:', '')) - default_import_policy = xml_table_connection.find('ocni:default-import-policy', namespaces=NAMESPACES) + default_import_policy = xml_table_connection.find('ocni:config/ocni:default-import-policy', namespaces=NAMESPACES) add_value_from_tag(table_connection, 'default_import_policy', default_import_policy) resource_key = '/network_instance[{:s}]/table_connections[{:s}][{:s}][{:s}]'.format( @@ -125,4 +145,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: iip_ap['name'], iip_ap['export_policy']) response.append((resource_key, iip_ap)) + + + return response diff --git a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py index 369732de3fe58c52a2e9ab2227899160d091ff68..068ca5430d9135e784dbe9a07f80d81472cbf5cc 100644 --- a/src/device/service/drivers/openconfig/templates/RoutingPolicy.py +++ b/src/device/service/drivers/openconfig/templates/RoutingPolicy.py @@ -74,7 +74,7 @@ def parse(xml_data : ET.Element) -> List[Tuple[str, Dict[str, Any]]]: resource_key = '/routing_policy/bgp_defined_set[{:s}]'.format(bgp_ext_community_set['ext_community_set_name']) response.append((resource_key, copy.deepcopy(bgp_ext_community_set))) - ext_community_member = xml_bgp_ext_community_set.find('ocbp:ext-community-member', namespaces=NAMESPACES) + ext_community_member = xml_bgp_ext_community_set.find('ocbp:config/ocbp:ext-community-member', namespaces=NAMESPACES) if ext_community_member is not None and ext_community_member.text is not None: add_value_from_tag(bgp_ext_community_set, 'ext_community_member', ext_community_member) diff --git a/src/device/service/drivers/openconfig/templates/__init__.py b/src/device/service/drivers/openconfig/templates/__init__.py index 901f5cf0291dca1bda155e20abd16db5989df7dc..5e77b25fe3206407db9427085de70b95342d370a 100644 --- a/src/device/service/drivers/openconfig/templates/__init__.py +++ b/src/device/service/drivers/openconfig/templates/__init__.py @@ -13,7 +13,7 @@ # limitations under the License. import json, logging, lxml.etree as ET, re -from typing import Any, Dict +from typing import Any, Dict, Optional from jinja2 import Environment, PackageLoader, select_autoescape from device.service.driver_api._Driver import ( RESOURCE_ENDPOINTS, RESOURCE_INTERFACES, RESOURCE_NETWORK_INSTANCES, RESOURCE_ROUTING_POLICIES, RESOURCE_ACL) @@ -77,9 +77,11 @@ def parse(resource_key : str, xml_data : ET.Element): if parser is None: return [(resource_key, xml_data)] return parser(xml_data) -def compose_config(resource_key : str, resource_value : str, delete : bool = False) -> str: +def compose_config( + resource_key : str, resource_value : str, delete : bool = False, vendor : Optional[str] = None +) -> str: template_name = '{:s}/edit_config.xml'.format(RE_REMOVE_FILTERS.sub('', resource_key)) template = JINJA_ENV.get_template(template_name) data : Dict[str, Any] = json.loads(resource_value) operation = 'delete' if delete else 'merge' - return '{:s}'.format(template.render(**data, operation=operation).strip()) + return '{:s}'.format(template.render(**data, operation=operation, vendor=vendor).strip()) diff --git a/src/device/service/drivers/openconfig/templates/acl/acl-set/acl-entry/edit_config.xml b/src/device/service/drivers/openconfig/templates/acl/acl-set/acl-entry/edit_config.xml index fac259b6fdcd3cbded93088ddc6335ea2bfe5f69..2769e8b2e9f81326332ae175f915432b7337f24c 100644 --- a/src/device/service/drivers/openconfig/templates/acl/acl-set/acl-entry/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/acl/acl-set/acl-entry/edit_config.xml @@ -13,6 +13,16 @@ {{sequence_id}} + {% if operation is not defined or operation != 'delete' %} + {% if type=='ACL_L2' %} + + + {% if source_address is defined %}{{source_address}}{% endif%} + {% if destination_address is defined %}{{destination_address}}{% endif%} + + + {% endif%} + {% if type=='ACL_IPV4' %} {% if source_address is defined %}{{source_address}}{% endif%} @@ -29,12 +39,26 @@ {% if tcp_flags is defined %}{{tcp_flags}}{% endif%} + {% endif%} + {% if type=='ACL_IPV6' %} + + + {% if source_address is defined %}{{source_address}}{% endif%} + {% if destination_address is defined %}{{destination_address}}{% endif%} + {% if protocol is defined %}{{protocol}}{% endif%} + {% if dscp is defined %}{{dscp}}{% endif%} + {% if hop_limit is defined %}{{hop_limit}}{% endif%} + + + {% endif%} + {% if forwarding_action is defined %}{{forwarding_action}}{% endif%} {% if log_action is defined %}{{log_action}}{% endif%} + {% endif%} diff --git a/src/device/service/drivers/openconfig/templates/acl/interfaces/egress/edit_config.xml b/src/device/service/drivers/openconfig/templates/acl/interfaces/egress/edit_config.xml index d987b0cc4b40298533f140f71af83c6fad884020..b070b305a505890c51f3751d2b83eb415ae4aa43 100644 --- a/src/device/service/drivers/openconfig/templates/acl/interfaces/egress/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/acl/interfaces/egress/edit_config.xml @@ -1,18 +1,21 @@ - + {{id}} {{id}} + {% if interface is defined %} {{interface}} {% if subinterface is defined %}{{subinterface}}{% endif%} + {% endif%} + {% if set_name_egress is defined %} - + > {{set_name_egress}} {{type_egress}} @@ -21,6 +24,7 @@ + {% endif%} diff --git a/src/device/service/drivers/openconfig/templates/acl/interfaces/ingress/edit_config.xml b/src/device/service/drivers/openconfig/templates/acl/interfaces/ingress/edit_config.xml index 144a03c55477e532379541be5443063fe3aa2f10..d1f18efb26bc1316354c2bb26623cb36f7dc0be6 100644 --- a/src/device/service/drivers/openconfig/templates/acl/interfaces/ingress/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/acl/interfaces/ingress/edit_config.xml @@ -1,18 +1,21 @@ - + {{id}} {{id}} + {% if interface is defined %} {{interface}} {% if subinterface is defined %}{{subinterface}}{% endif%} + {% endif%} + {% if set_name_ingress is defined %} - + {{set_name_ingress}} {{type_ingress}} @@ -21,6 +24,7 @@ + {% endif%} diff --git a/src/device/service/drivers/openconfig/templates/interface/edit_config.xml b/src/device/service/drivers/openconfig/templates/interface/edit_config.xml index ff15d1d682ea910208237c32adcc93029fb036d8..4bc53ff1ddfbebbdcef2a0b4c37770210726676b 100644 --- a/src/device/service/drivers/openconfig/templates/interface/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/interface/edit_config.xml @@ -1,14 +1,12 @@ - + {{name}} + {% if operation is defined and operation != 'delete' %} {{name}} - {% if operation is defined and operation == 'delete' %} - {% else %} - {{description}} {{mtu}} - {% endif %} + {% endif %} diff --git a/src/device/service/drivers/openconfig/templates/interface/subinterface/edit_config.xml b/src/device/service/drivers/openconfig/templates/interface/subinterface/edit_config.xml index d266f819c41355ba8a30086415f2bba3b68f1f3d..1bdb8efbff495f04ee90dadaffaa7412332531b7 100644 --- a/src/device/service/drivers/openconfig/templates/interface/subinterface/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/interface/subinterface/edit_config.xml @@ -1,35 +1,46 @@ - + {{name}} - {% if operation is not defined or operation != 'delete' %} {{name}} + ianaift:{{type}} + {% if mtu is defined %}{{mtu}}{% endif%} + true - {% endif %} - + {{index}} - {% if operation is not defined or operation != 'delete' %} {{index}} - true + {{description}} + {% if vendor=="ADVA" and vlan_id is not defined %} + true + {% endif%} + {% if vlan_id is defined %} - - {{vlan_id}} - - - - -
- {{address_ip}} + + - {{address_ip}} - {{address_prefix}} + {{vlan_id}} -
-
-
+ + + + {% endif %} + {% if address_ip is defined %} + + + + {{address_ip}} + + {{address_ip}} + {{address_prefix}} + + + + {% endif %}
diff --git a/src/device/service/drivers/openconfig/templates/network_instance/connection_point/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/connection_point/edit_config.xml new file mode 100644 index 0000000000000000000000000000000000000000..60272e5fba4dd87c9bc48ef596197c2508b75e59 --- /dev/null +++ b/src/device/service/drivers/openconfig/templates/network_instance/connection_point/edit_config.xml @@ -0,0 +1,29 @@ + + + {{name}} + + + {{connection_point}} + + {{connection_point}} + + + + {{connection_point}} + + {{connection_point}} + 1 + oc-ni-types:REMOTE + + + + {{VC_ID}} + {{remote_system}} + + + + + + + + diff --git a/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml index 9362c09c6cfebcd1f83b05002f58eda51724b911..6b6b733dab12a107bf0420907da9c9683173faeb 100644 --- a/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/network_instance/edit_config.xml @@ -5,16 +5,38 @@ {{name}} oc-ni-types:{{type}} - {{description}} + {% if description is defined %}{{description}}{% endif %} + true + {% if type=='L3VRF' %} {% if router_id is defined %}{{router_id}}{% endif %} {{route_distinguisher}} - true + {% endif %} + {% if type=='L2VSI' %} + 1500 + {% endif %} + {% if type=='L3VRF' or type=='L2VSI' %} + {% if type=='L3VRF' %} oc-ni-types:MPLS + oc-ni-types:INSTANCE_LABEL + {% endif %} + {% if type=='L2VSI' %} + oc-ni-types:MPLS + {% endif %} {% endif %} + {% if type=='L2VSI' %} + + + true + 1000 + 300 + + + {% endif %} + {% endif %} diff --git a/src/device/service/drivers/openconfig/templates/network_instance/interface/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/interface/edit_config.xml index d5c33d31a6d671216db55c0eded94dc15a56bec8..bf8c0c0770f9344fbed16f3a6b09f7fa99a978ef 100644 --- a/src/device/service/drivers/openconfig/templates/network_instance/interface/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/network_instance/interface/edit_config.xml @@ -2,15 +2,13 @@ {{name}} - + {{id}} - {% if operation is not defined or operation != 'delete' %} {{id}} {{interface}} {{subinterface}} - {% endif %} diff --git a/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml index da05d0467605e6cec0c3448cc325ff60dfc7cfc9..c9c068e480c0569cfe5f97b78b28fbe03e2595f8 100644 --- a/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml @@ -3,19 +3,19 @@ {{name}} - {{identifier}} + oc-pol-types:{{identifier}} {{protocol_name}} {% if operation is not defined or operation != 'delete' %} - {{identifier}} + oc-pol-types:{{identifier}} {{protocol_name}} - true {% if identifier=='BGP' %} {{as}} + {{router_id}} @@ -23,5 +23,18 @@ {% endif %} + {% if operation is not defined or operation != 'delete' %} + + + + oc-pol-types:{{identifier}} + oc-types:IPV4 + + oc-pol-types:{{identifier}} + oc-types:IPV4 + +
+
+ {% endif %} diff --git a/src/device/service/drivers/openconfig/templates/routing_policy/bgp_defined_set/edit_config.xml b/src/device/service/drivers/openconfig/templates/routing_policy/bgp_defined_set/edit_config.xml index df64606ae5ab434e5e3453f7294db02bb749bdce..6843c2dcbd306b149a4168565447d11174eceadc 100644 --- a/src/device/service/drivers/openconfig/templates/routing_policy/bgp_defined_set/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/routing_policy/bgp_defined_set/edit_config.xml @@ -5,7 +5,10 @@ {{ext_community_set_name}} {% if operation is not defined or operation != 'delete' %} - {% if ext_community_member is defined %} {{ext_community_member}}{% endif %} + + {{ext_community_set_name}} + {{ext_community_member}} + {% endif %} diff --git a/src/device/service/drivers/openconfig/templates/routing_policy/policy_definition/statement/edit_config.xml b/src/device/service/drivers/openconfig/templates/routing_policy/policy_definition/statement/edit_config.xml index 711067f424b68da0e69913ce01f5133c5cbbfe02..eda2d99c9f6299f7345767db8bed8e8cc58284ae 100644 --- a/src/device/service/drivers/openconfig/templates/routing_policy/policy_definition/statement/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/routing_policy/policy_definition/statement/edit_config.xml @@ -1,8 +1,11 @@ -{% if operation is not defined or operation != 'delete' %} - + {{policy_name}} + {% if operation is not defined or operation != 'delete' %} + + {{policy_name}} + {{statement_name}} @@ -10,11 +13,13 @@ {{statement_name}} + + oc-pol-types:DIRECTLY_CONNECTED + - + {{ext_community_set_name}} - {{match_set_options}} - + @@ -24,7 +29,7 @@ + {% endif %} -{% endif %} diff --git a/src/device/service/drivers/p4/__init__.py b/src/device/service/drivers/p4/__init__.py index 70a33251242c51f49140e596b8208a19dd5245f7..9953c820575d42fa88351cc8de022d880ba96e6a 100644 --- a/src/device/service/drivers/p4/__init__.py +++ b/src/device/service/drivers/p4/__init__.py @@ -11,4 +11,3 @@ # 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. - diff --git a/src/device/service/drivers/p4/p4_client.py b/src/device/service/drivers/p4/p4_client.py new file mode 100644 index 0000000000000000000000000000000000000000..600d08880c7e8a1d6a7238e60d66a87d7167bd8c --- /dev/null +++ b/src/device/service/drivers/p4/p4_client.py @@ -0,0 +1,607 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +""" +P4Runtime client. +""" + +import logging +import queue +import sys +import enum +import threading +from functools import wraps +from typing import NamedTuple +import grpc +import google.protobuf.text_format +from google.rpc import status_pb2, code_pb2 + +from p4.v1 import p4runtime_pb2 +from p4.v1 import p4runtime_pb2_grpc + +STREAM_ATTR_ARBITRATION = "arbitration" +STREAM_ATTR_PACKET = "packet" +STREAM_ATTR_DIGEST = "digest" +STREAM_ATTR_IDLE_NOT = "idle_timeout_notification" +STREAM_ATTR_UNKNOWN = "unknown" + +LOGGER = logging.getLogger(__name__) + + +class P4RuntimeErrorFormatException(Exception): + """ + P4Runtime error format exception. + """ + + +# Used to iterate over the p4.Error messages in a gRPC error Status object +class P4RuntimeErrorIterator: + """ + P4Runtime error iterator. + + Attributes + ---------- + grpc_error : object + gRPC error + """ + + def __init__(self, grpc_error): + assert grpc_error.code() == grpc.StatusCode.UNKNOWN + self.grpc_error = grpc_error + + error = None + # The gRPC Python package does not have a convenient way to access the + # binary details for the error: they are treated as trailing metadata. + for meta in self.grpc_error.trailing_metadata(): + if meta[0] == "grpc-status-details-bin": + error = status_pb2.Status() + error.ParseFromString(meta[1]) + break + if error is None: + raise P4RuntimeErrorFormatException("No binary details field") + + if len(error.details) == 0: + raise P4RuntimeErrorFormatException( + "Binary details field has empty Any details repeated field") + self.errors = error.details + self.idx = 0 + + def __iter__(self): + return self + + def __next__(self): + while self.idx < len(self.errors): + p4_error = p4runtime_pb2.Error() + one_error_any = self.errors[self.idx] + if not one_error_any.Unpack(p4_error): + raise P4RuntimeErrorFormatException( + "Cannot convert Any message to p4.Error") + if p4_error.canonical_code == code_pb2.OK: + continue + val = self.idx, p4_error + self.idx += 1 + return val + raise StopIteration + + +class P4RuntimeWriteException(Exception): + """ + P4Runtime write exception handler. + + Attributes + ---------- + grpc_error : object + gRPC error + """ + + def __init__(self, grpc_error): + assert grpc_error.code() == grpc.StatusCode.UNKNOWN + super().__init__() + self.errors = [] + try: + error_iterator = P4RuntimeErrorIterator(grpc_error) + for error_tuple in error_iterator: + self.errors.append(error_tuple) + except P4RuntimeErrorFormatException as ex: + raise P4RuntimeException(grpc_error) from ex + + def __str__(self): + message = "Error(s) during Write:\n" + for idx, p4_error in self.errors: + code_name = code_pb2._CODE.values_by_number[ + p4_error.canonical_code].name + message += f"\t* At index {idx}: {code_name}, " \ + f"'{p4_error.message}'\n" + return message + + +class P4RuntimeException(Exception): + """ + P4Runtime exception handler. + + Attributes + ---------- + grpc_error : object + gRPC error + """ + + def __init__(self, grpc_error): + super().__init__() + self.grpc_error = grpc_error + + def __str__(self): + message = f"P4Runtime RPC error ({self.grpc_error.code().name}): " \ + f"{self.grpc_error.details()}" + return message + + +def parse_p4runtime_write_error(func): + """ + Parse P4Runtime write error. + + :param func: function + :return: parsed error + """ + + @wraps(func) + def handle(*args, **kwargs): + try: + return func(*args, **kwargs) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.UNKNOWN: + raise ex + raise P4RuntimeWriteException(ex) from None + + return handle + + +def parse_p4runtime_error(func): + """ + Parse P4Runtime error. + + :param func: function + :return: parsed error + """ + + @wraps(func) + def handle(*args, **kwargs): + try: + return func(*args, **kwargs) + except grpc.RpcError as ex: + raise P4RuntimeException(ex) from None + + return handle + + +class SSLOptions(NamedTuple): + """ + Tuple of SSL options. + """ + insecure: bool + cacert: str = None + cert: str = None + key: str = None + + +def read_pem_file(path): + """ + Load and read PEM file. + + :param path: path to PEM file + :return: file descriptor + """ + try: + with open(path, "rb") as f_d: + return f_d.read() + except (FileNotFoundError, IOError, OSError): + logging.critical("Cannot read from PEM file '%s'", path) + sys.exit(1) + + +@enum.unique +class WriteOperation(enum.Enum): + """ + Write Operations. + """ + insert = 1 + update = 2 + delete = 3 + + +def select_operation(mode): + """ + Select P4 operation based upon the operation mode. + + :param mode: operation mode + :return: P4 operation protobuf object + """ + if mode == WriteOperation.insert: + return p4runtime_pb2.Update.INSERT + if mode == WriteOperation.update: + return p4runtime_pb2.Update.UPDATE + if mode == WriteOperation.delete: + return p4runtime_pb2.Update.DELETE + return None + + +def select_entity_type(entity, update): + """ + Select P4 entity type for an update. + + :param entity: P4 entity object + :param update: update operation + :return: the correct update entity or None + """ + if isinstance(entity, p4runtime_pb2.TableEntry): + return update.entity.table_entry + if isinstance(entity, p4runtime_pb2.ActionProfileGroup): + return update.entity.action_profile_group + if isinstance(entity, p4runtime_pb2.ActionProfileMember): + return update.entity.action_profile_member + return None + + +class P4RuntimeClient: + """ + P4Runtime client. + + Attributes + ---------- + device_id : int + P4 device ID + grpc_address : str + IP address and port + election_id : tuple + Mastership election ID + role_name : str + Role name (optional) + ssl_options: tuple + SSL options" named tuple (optional) + """ + + def __init__(self, device_id, grpc_address, + election_id, role_name=None, ssl_options=None): + self.device_id = device_id + self.election_id = election_id + self.role_name = role_name + if ssl_options is None: + self.ssl_options = SSLOptions(True) + else: + self.ssl_options = ssl_options + LOGGER.debug( + "Connecting to device %d at %s", device_id, grpc_address) + + if self.ssl_options.insecure: + logging.debug("Using insecure channel") + self.channel = grpc.insecure_channel(grpc_address) + else: + # root certificates are retrieved from a default location + # chosen by gRPC runtime unless the user provides + # custom certificates. + root_certificates = None + if self.ssl_options.cacert is not None: + root_certificates = read_pem_file(self.ssl_options.cacert) + certificate_chain = None + if self.ssl_options.cert is not None: + certificate_chain = read_pem_file(self.ssl_options.cert) + private_key = None + if self.ssl_options.key is not None: + private_key = read_pem_file(self.ssl_options.key) + creds = grpc.ssl_channel_credentials(root_certificates, private_key, + certificate_chain) + self.channel = grpc.secure_channel(grpc_address, creds) + self.stream_in_q = None + self.stream_out_q = None + self.stream = None + self.stream_recv_thread = None + self.stub = p4runtime_pb2_grpc.P4RuntimeStub(self.channel) + + try: + self.set_up_stream() + except P4RuntimeException: + LOGGER.critical("Failed to connect to P4Runtime server") + sys.exit(1) + LOGGER.info("P4Runtime client is successfully invoked") + + def set_up_stream(self): + """ + Set up a gRPC stream. + """ + self.stream_out_q = queue.Queue() + # queues for different messages + self.stream_in_q = { + STREAM_ATTR_ARBITRATION: queue.Queue(), + STREAM_ATTR_PACKET: queue.Queue(), + STREAM_ATTR_DIGEST: queue.Queue(), + STREAM_ATTR_IDLE_NOT: queue.Queue(), + STREAM_ATTR_UNKNOWN: queue.Queue(), + } + + def stream_req_iterator(): + while True: + stream_p = self.stream_out_q.get() + if stream_p is None: + break + yield stream_p + + def stream_recv_wrapper(stream): + @parse_p4runtime_error + def stream_recv(): + for stream_p in stream: + if stream_p.HasField("arbitration"): + self.stream_in_q["arbitration"].put(stream_p) + elif stream_p.HasField("packet"): + self.stream_in_q["packet"].put(stream_p) + elif stream_p.HasField("digest"): + self.stream_in_q["digest"].put(stream_p) + else: + self.stream_in_q["unknown"].put(stream_p) + + try: + stream_recv() + except P4RuntimeException as ex: + logging.critical("StreamChannel error, closing stream") + logging.critical(ex) + for k in self.stream_in_q: + self.stream_in_q[k].put(None) + + self.stream = self.stub.StreamChannel(stream_req_iterator()) + self.stream_recv_thread = threading.Thread( + target=stream_recv_wrapper, args=(self.stream,)) + self.stream_recv_thread.start() + self.handshake() + + def handshake(self): + """ + Handshake with gRPC server. + """ + + req = p4runtime_pb2.StreamMessageRequest() + arbitration = req.arbitration + arbitration.device_id = self.device_id + election_id = arbitration.election_id + election_id.high = self.election_id[0] + election_id.low = self.election_id[1] + if self.role_name is not None: + arbitration.role.name = self.role_name + self.stream_out_q.put(req) + + rep = self.get_stream_packet(STREAM_ATTR_ARBITRATION, timeout=2) + if rep is None: + logging.critical("Failed to establish session with server") + sys.exit(1) + is_primary = (rep.arbitration.status.code == code_pb2.OK) + logging.debug("Session established, client is '%s'", + "primary" if is_primary else "backup") + if not is_primary: + print("You are not the primary client," + "you only have read access to the server") + + def get_stream_packet(self, type_, timeout=1): + """ + Get a new message from the stream. + + :param type_: stream type. + :param timeout: time to wait. + :return: message or None + """ + if type_ not in self.stream_in_q: + print("Unknown stream type 's"'', type_) + return None + try: + msg = self.stream_in_q[type_].get(timeout=timeout) + return msg + except queue.Empty: # timeout expired + return None + + @parse_p4runtime_error + def get_p4info(self): + """ + Retrieve P4Info content. + + :return: P4Info object. + """ + logging.debug("Retrieving P4Info file") + req = p4runtime_pb2.GetForwardingPipelineConfigRequest() + req.device_id = self.device_id + req.response_type = \ + p4runtime_pb2.GetForwardingPipelineConfigRequest.P4INFO_AND_COOKIE + rep = self.stub.GetForwardingPipelineConfig(req) + return rep.config.p4info + + @parse_p4runtime_error + def set_fwd_pipe_config(self, p4info_path, bin_path): + """ + Configure the pipeline. + + :param p4info_path: path to the P4Info file + :param bin_path: path to the binary file + :return: + """ + logging.debug("Setting forwarding pipeline config") + req = p4runtime_pb2.SetForwardingPipelineConfigRequest() + req.device_id = self.device_id + if self.role_name is not None: + req.role = self.role_name + election_id = req.election_id + election_id.high = self.election_id[0] + election_id.low = self.election_id[1] + req.action = \ + p4runtime_pb2.SetForwardingPipelineConfigRequest.VERIFY_AND_COMMIT + with open(p4info_path, "r", encoding="utf-8") as f_info: + with open(bin_path, "rb") as f_bin: + try: + google.protobuf.text_format.Merge( + f_info.read(), req.config.p4info) + except google.protobuf.text_format.ParseError: + logging.error("Error when parsing P4Info") + raise + req.config.p4_device_config = f_bin.read() + return self.stub.SetForwardingPipelineConfig(req) + + def tear_down(self): + """ + Tear connection with the gRPC server down. + """ + if self.stream_out_q: + logging.debug("Cleaning up stream") + self.stream_out_q.put(None) + if self.stream_in_q: + for k in self.stream_in_q: + self.stream_in_q[k].put(None) + if self.stream_recv_thread: + self.stream_recv_thread.join() + self.channel.close() + # avoid a race condition if channel deleted when process terminates + del self.channel + + @parse_p4runtime_write_error + def __write(self, entity, mode=WriteOperation.insert): + """ + Perform a write operation. + + :param entity: P4 entity to write + :param mode: operation mode (defaults to insert) + :return: void + """ + if isinstance(entity, (list, tuple)): + for ent in entity: + self.__write(ent) + return + req = self.__get_new_write_request() + update = req.updates.add() + update.type = select_operation(mode) + msg_entity = select_entity_type(entity, update) + if not msg_entity: + msg = f"{mode.name} operation for entity {entity.__name__}" \ + f"not supported" + raise P4RuntimeWriteException(msg) + msg_entity.CopyFrom(entity) + self.__simple_write(req) + + def __get_new_write_request(self): + """ + Create a new write request message. + + :return: write request message + """ + req = p4runtime_pb2.WriteRequest() + req.device_id = self.device_id + if self.role_name is not None: + req.role = self.role_name + election_id = req.election_id + election_id.high = self.election_id[0] + election_id.low = self.election_id[1] + return req + + @parse_p4runtime_write_error + def __simple_write(self, req): + """ + Send a write operation into the wire. + + :param req: write operation request + :return: void + """ + try: + return self.stub.Write(req) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.UNKNOWN: + raise ex + raise P4RuntimeWriteException(ex) from ex + + @parse_p4runtime_write_error + def insert(self, entity): + """ + Perform an insert write operation. + + :param entity: P4 entity to insert + :return: void + """ + return self.__write(entity, WriteOperation.insert) + + @parse_p4runtime_write_error + def update(self, entity): + """ + Perform an update write operation. + + :param entity: P4 entity to update + :return: void + """ + return self.__write(entity, WriteOperation.update) + + @parse_p4runtime_write_error + def delete(self, entity): + """ + Perform a delete write operation. + + :param entity: P4 entity to delete + :return: void + """ + return self.__write(entity, WriteOperation.delete) + + @parse_p4runtime_write_error + def write(self, req): + """ + Write device operation. + + :param req: write request message + :return: status + """ + req.device_id = self.device_id + if self.role_name is not None: + req.role = self.role_name + election_id = req.election_id + election_id.high = self.election_id[0] + election_id.low = self.election_id[1] + return self.__simple_write(req) + + @parse_p4runtime_write_error + def write_update(self, update): + """ + Update device operation. + + :param update: update request message + :return: status + """ + req = self.__get_new_write_request() + req.updates.extend([update]) + return self.__simple_write(req) + + # Decorator is useless here: in case of server error, + # the exception is raised during the iteration (when next() is called). + @parse_p4runtime_error + def read_one(self, entity): + """ + Read device operation. + + :param entity: P4 entity for which the read is issued + :return: status + """ + req = p4runtime_pb2.ReadRequest() + if self.role_name is not None: + req.role = self.role_name + req.device_id = self.device_id + req.entities.extend([entity]) + return self.stub.Read(req) + + @parse_p4runtime_error + def api_version(self): + """ + P4Runtime API version. + + :return: API version hex + """ + req = p4runtime_pb2.CapabilitiesRequest() + rep = self.stub.Capabilities(req) + return rep.p4runtime_api_version diff --git a/src/device/service/drivers/p4/p4_common.py b/src/device/service/drivers/p4/p4_common.py new file mode 100644 index 0000000000000000000000000000000000000000..bcafedc1f613bfe1d1739d72f89803155b720155 --- /dev/null +++ b/src/device/service/drivers/p4/p4_common.py @@ -0,0 +1,445 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +""" +This package contains several helper functions for encoding to and decoding from +byte strings: +- integers +- IPv4 address strings +- IPv6 address strings +- Ethernet address strings +as well as static variables used by various P4 driver components. +""" + +import logging +import math +import re +import socket +import ipaddress +from ctypes import c_uint16, sizeof +import macaddress + +from common.type_checkers.Checkers import chk_type +try: + from .p4_exception import UserBadValueError +except ImportError: + from p4_exception import UserBadValueError + +P4_ATTR_DEV_ID = "id" +P4_ATTR_DEV_NAME = "name" +P4_ATTR_DEV_VENDOR = "vendor" +P4_ATTR_DEV_HW_VER = "hw_ver" +P4_ATTR_DEV_SW_VER = "sw_ver" +P4_ATTR_DEV_P4BIN = "p4bin" +P4_ATTR_DEV_P4INFO = "p4info" +P4_ATTR_DEV_TIMEOUT = "timeout" + +P4_VAL_DEF_VENDOR = "Unknown" +P4_VAL_DEF_HW_VER = "BMv2 simple_switch" +P4_VAL_DEF_SW_VER = "Stratum" +P4_VAL_DEF_TIMEOUT = 60 + + +# Logger instance +LOGGER = logging.getLogger(__name__) + + +# MAC address encoding/decoding +mac_pattern = re.compile(r"^([\da-fA-F]{2}:){5}([\da-fA-F]{2})$") + + +def matches_mac(mac_addr_string): + """ + Check whether input string is a valid MAC address or not. + + :param mac_addr_string: string-based MAC address + :return: boolean status + """ + return mac_pattern.match(mac_addr_string) is not None + + +def encode_mac(mac_addr_string): + """ + Convert string-based MAC address into bytes. + + :param mac_addr_string: string-based MAC address + :return: MAC address in bytes + """ + return bytes(macaddress.MAC(mac_addr_string)) + + +def decode_mac(encoded_mac_addr): + """ + Convert a MAC address in bytes into string-based MAC address. + + :param encoded_mac_addr: MAC address in bytes + :return: string-based MAC address + """ + return str(macaddress.MAC(encoded_mac_addr)).replace("-", ":").lower() + + +# IP address encoding/decoding +IPV4_LOCALHOST = "localhost" + + +def matches_ipv4(ip_addr_string): + """ + Check whether input string is a valid IPv4 address or not. + + :param ip_addr_string: string-based IPv4 address + :return: boolean status + """ + if ip_addr_string == IPV4_LOCALHOST: + return True + try: + addr = ipaddress.ip_address(ip_addr_string) + return isinstance(addr, ipaddress.IPv4Address) + except ValueError: + return False + + +def encode_ipv4(ip_addr_string): + """ + Convert string-based IPv4 address into bytes. + + :param ip_addr_string: string-based IPv4 address + :return: IPv4 address in bytes + """ + return socket.inet_aton(ip_addr_string) + + +def decode_ipv4(encoded_ip_addr): + """ + Convert an IPv4 address in bytes into string-based IPv4 address. + + :param encoded_ip_addr: IPv4 address in bytes + :return: string-based IPv4 address + """ + return socket.inet_ntoa(encoded_ip_addr) + + +def matches_ipv6(ip_addr_string): + """ + Check whether input string is a valid IPv6 address or not. + + :param ip_addr_string: string-based IPv6 address + :return: boolean status + """ + try: + addr = ipaddress.ip_address(ip_addr_string) + return isinstance(addr, ipaddress.IPv6Address) + except ValueError: + return False + + +def encode_ipv6(ip_addr_string): + """ + Convert string-based IPv6 address into bytes. + + :param ip_addr_string: string-based IPv6 address + :return: IPv6 address in bytes + """ + return socket.inet_pton(socket.AF_INET6, ip_addr_string) + + +def decode_ipv6(encoded_ip_addr): + """ + Convert an IPv6 address in bytes into string-based IPv6 address. + + :param encoded_ip_addr: IPv6 address in bytes + :return: string-based IPv6 address + """ + return str(ipaddress.ip_address(encoded_ip_addr)) + + +# Numerical encoding/decoding + + +def limits(c_int_type): + """ + Discover limits of numerical type. + + :param c_int_type: numerical type + :return: tuple of numerical type's limits + """ + signed = c_int_type(-1).value < c_int_type(0).value + bit_size = sizeof(c_int_type) * 8 + signed_limit = 2 ** (bit_size - 1) + return (-signed_limit, signed_limit - 1) \ + if signed else (0, 2 * signed_limit - 1) + + +def valid_port(port): + """ + Check whether input is a valid port number or not. + + :param port: port number + :return: boolean status + """ + lim = limits(c_uint16) + return lim[0] <= port <= lim[1] + + +def bitwidth_to_bytes(bitwidth): + """ + Convert number of bits to number of bytes. + + :param bitwidth: number of bits + :return: number of bytes + """ + return int(math.ceil(bitwidth / 8.0)) + + +def encode_num(number, bitwidth): + """ + Convert number into bytes. + + :param number: number to convert + :param bitwidth: number of bits + :return: number in bytes + """ + byte_len = bitwidth_to_bytes(bitwidth) + return number.to_bytes(byte_len, byteorder="big") + + +def decode_num(encoded_number): + """ + Convert number in bytes into its numerical form. + + :param encoded_number: number in bytes to convert + :return: numerical number form + """ + return int.from_bytes(encoded_number, "big") + + +# Umbrella encoder + + +def encode(variable, bitwidth): + """ + Tries to infer the type of `input` and encode it. + + :param variable: target variable + :param bitwidth: size of variable in bits + :return: encoded bytes + """ + byte_len = bitwidth_to_bytes(bitwidth) + if isinstance(variable, (list, tuple)) and len(variable) == 1: + variable = variable[0] + + if isinstance(variable, int): + encoded_bytes = encode_num(variable, bitwidth) + elif isinstance(variable, str): + if matches_mac(variable): + encoded_bytes = encode_mac(variable) + elif matches_ipv4(variable): + encoded_bytes = encode_ipv4(variable) + elif matches_ipv6(variable): + encoded_bytes = encode_ipv6(variable) + else: + try: + value = int(variable, 0) + except ValueError as ex: + raise UserBadValueError( + f"Invalid value '{variable}': " + "could not cast to integer, try in hex with 0x prefix")\ + from ex + encoded_bytes = value.to_bytes(byte_len, byteorder="big") + else: + raise Exception( + f"Encoding objects of {type(variable)} is not supported") + assert len(encoded_bytes) == byte_len + return encoded_bytes + + +# Parsers + + +def get_match_field_value(match_field): + """ + Retrieve the value of a certain match field by name. + + :param match_field: match field + :return: match filed value + """ + match_type = match_field.WhichOneof("field_match_type") + if match_type == "valid": + return match_field.valid.value + if match_type == "exact": + return match_field.exact.value + if match_type == "lpm": + return match_field.lpm.value, match_field.lpm.prefix_len + if match_type == "ternary": + return match_field.ternary.value, match_field.ternary.mask + if match_type == "range": + return match_field.range.low, match_field.range.high + raise Exception(f"Unsupported match type with type {match_type}") + + +def parse_resource_string_from_json(resource, resource_str="table-name"): + """ + Parse a given resource name within a JSON-based object. + + :param resource: JSON-based object + :param resource_str: resource string to parse + :return: value of the parsed resource string + """ + if not resource or (resource_str not in resource): + LOGGER.warning("JSON entry misses '%s' attribute", resource_str) + return None + chk_type(resource_str, resource[resource_str], str) + return resource[resource_str] + + +def parse_resource_number_from_json(resource, resource_nb): + """ + Parse a given resource number within a JSON-based object. + + :param resource: JSON-based object + :param resource_nb: resource number to parse + :return: value of the parsed resource number + """ + if not resource or (resource_nb not in resource): + LOGGER.warning( + "JSON entry misses '%s' attribute", resource_nb) + return None + chk_type(resource_nb, resource[resource_nb], int) + return resource[resource_nb] + + +def parse_resource_integer_from_json(resource, resource_nb): + """ + Parse a given integer number within a JSON-based object. + + :param resource: JSON-based object + :param resource_nb: resource number to parse + :return: value of the parsed resource number + """ + num = parse_resource_number_from_json(resource, resource_nb) + if num: + return int(num) + return -1 + + +def parse_resource_float_from_json(resource, resource_nb): + """ + Parse a given floating point number within a JSON-based object. + + :param resource: JSON-based object + :param resource_nb: resource number to parse + :return: value of the parsed resource number + """ + num = parse_resource_number_from_json(resource, resource_nb) + if num: + return float(num) + return -1.0 + + +def parse_resource_bytes_from_json(resource, resource_bytes): + """ + Parse given resource bytes within a JSON-based object. + + :param resource: JSON-based object + :param resource_bytes: resource bytes to parse + :return: value of the parsed resource bytes + """ + if not resource or (resource_bytes not in resource): + LOGGER.debug( + "JSON entry misses '%s' attribute", resource_bytes) + return None + + if resource_bytes in resource: + chk_type(resource_bytes, resource[resource_bytes], bytes) + return resource[resource_bytes] + return None + + +def parse_match_operations_from_json(resource): + """ + Parse the match operations within a JSON-based object. + + :param resource: JSON-based object + :return: map of match operations + """ + if not resource or ("match-fields" not in resource): + LOGGER.warning( + "JSON entry misses 'match-fields' list of attributes") + return {} + chk_type("match-fields", resource["match-fields"], list) + + match_map = {} + for mf_entry in resource["match-fields"]: + if ("match-field" not in mf_entry) or \ + ("match-value" not in mf_entry): + LOGGER.warning( + "JSON entry misses 'match-field' and/or " + "'match-value' attributes") + return None + chk_type("match-field", mf_entry["match-field"], str) + chk_type("match-value", mf_entry["match-value"], str) + match_map[mf_entry["match-field"]] = mf_entry["match-value"] + + return match_map + + +def parse_action_parameters_from_json(resource): + """ + Parse the action parameters within a JSON-based object. + + :param resource: JSON-based object + :return: map of action parameters + """ + if not resource or ("action-params" not in resource): + LOGGER.warning( + "JSON entry misses 'action-params' list of attributes") + return None + chk_type("action-params", resource["action-params"], list) + + action_name = parse_resource_string_from_json(resource, "action-name") + + action_params = {} + for ac_entry in resource["action-params"]: + if not ac_entry: + LOGGER.debug( + "Missing action parameter for action %s", action_name) + continue + chk_type("action-param", ac_entry["action-param"], str) + chk_type("action-value", ac_entry["action-value"], str) + action_params[ac_entry["action-param"]] = \ + ac_entry["action-value"] + + return action_params + + +def parse_integer_list_from_json(resource, resource_list, resource_item): + """ + Parse the list of integers within a JSON-based object. + + :param resource: JSON-based object + :param resource_list: name of the resource list + :param resource_item: name of the resource item + :return: list of integers + """ + if not resource or (resource_list not in resource): + LOGGER.warning( + "JSON entry misses '%s' list of attributes", resource_list) + return [] + chk_type(resource_list, resource[resource_list], list) + + integers_list = [] + for item in resource[resource_list]: + chk_type(resource_item, item[resource_item], int) + integers_list.append(item[resource_item]) + + return integers_list diff --git a/src/device/service/drivers/p4/p4_context.py b/src/device/service/drivers/p4/p4_context.py new file mode 100644 index 0000000000000000000000000000000000000000..ab01c422fe478cfe26c2f7331fc9b4653521db9f --- /dev/null +++ b/src/device/service/drivers/p4/p4_context.py @@ -0,0 +1,284 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +""" +Build some context around a given P4 info file. +""" + +from collections import Counter +import enum +from functools import partialmethod + + +@enum.unique +class P4Type(enum.Enum): + """ + P4 types. + """ + table = 1 + action = 2 + action_profile = 3 + counter = 4 + direct_counter = 5 + meter = 6 + direct_meter = 7 + controller_packet_metadata = 8 + + +P4Type.table.p4info_name = "tables" +P4Type.action.p4info_name = "actions" +P4Type.action_profile.p4info_name = "action_profiles" +P4Type.counter.p4info_name = "counters" +P4Type.direct_counter.p4info_name = "direct_counters" +P4Type.meter.p4info_name = "meters" +P4Type.direct_meter.p4info_name = "direct_meters" +P4Type.controller_packet_metadata.p4info_name = "controller_packet_metadata" + +for object_type in P4Type: + object_type.pretty_name = object_type.name.replace('_', ' ') + object_type.pretty_names = object_type.pretty_name + 's' + + +@enum.unique +class P4RuntimeEntity(enum.Enum): + """ + P4 runtime entities. + """ + table_entry = 1 + action_profile_member = 2 + action_profile_group = 3 + meter_entry = 4 + direct_meter_entry = 5 + counter_entry = 6 + direct_counter_entry = 7 + packet_replication_engine_entry = 8 + + +class Context: + """ + P4 context. + """ + def __init__(self): + self.p4info = None + self.p4info_obj_map = {} + self.p4info_obj_map_by_id = {} + self.p4info_objs_by_type = {} + + def set_p4info(self, p4info): + """ + Set a p4 info file. + + :param p4info: p4 info file + :return: void + """ + self.p4info = p4info + self._import_p4info_names() + + def get_obj(self, obj_type, name): + """ + Retrieve an object by type and name. + + :param obj_type: P4 object type + :param name: P4 object name + :return: P4 object + """ + key = (obj_type, name) + return self.p4info_obj_map.get(key, None) + + def get_obj_id(self, obj_type, name): + """ + Retrieve a P4 object's ID by type and name. + + :param obj_type: P4 object type + :param name: P4 object name + :return: P4 object ID + """ + obj = self.get_obj(obj_type, name) + if obj is None: + return None + return obj.preamble.id + + def get_param(self, action_name, name): + """ + Get an action parameter by action name. + + :param action_name: P4 action name + :param name: action parameter name + :return: action parameter + """ + action = self.get_obj(P4Type.action, action_name) + if action is None: + return None + for param in action.params: + if param.name == name: + return param + return None + + def get_mf(self, table_name, name): + """ + Get a table's match field by name. + + :param table_name: P4 table name + :param name: match field name + :return: match field + """ + table = self.get_obj(P4Type.table, table_name) + if table is None: + return None + for match_field in table.match_fields: + if match_field.name == name: + return match_field + return None + + def get_param_id(self, action_name, name): + """ + Get an action parameter ID by the action and parameter names. + + :param action_name: P4 action name + :param name: action parameter name + :return: action parameter ID + """ + param = self.get_param(action_name, name) + return None if param is None else param.id + + def get_mf_id(self, table_name, name): + """ + Get a table's match field ID by name. + + :param table_name: P4 table name + :param name: match field name + :return: match field ID + """ + match_field = self.get_mf(table_name, name) + return None if match_field is None else match_field.id + + def get_param_name(self, action_name, id_): + """ + Get an action parameter name by the action name and action ID. + + :param action_name: P4 action name + :param id_: action parameter ID + :return: action parameter name + """ + action = self.get_obj(P4Type.action, action_name) + if action is None: + return None + for param in action.params: + if param.id == id_: + return param.name + return None + + def get_mf_name(self, table_name, id_): + """ + Get a table's match field name by ID. + + :param table_name: P4 table name + :param id_: match field ID + :return: match field name + """ + table = self.get_obj(P4Type.table, table_name) + if table is None: + return None + for match_field in table.match_fields: + if match_field.id == id_: + return match_field.name + return None + + def get_objs(self, obj_type): + """ + Get P4 objects by type. + + :param obj_type: P4 object type + :return: list of tuples (object name, object) + """ + objects = self.p4info_objs_by_type[obj_type] + for name, obj in objects.items(): + yield name, obj + + def get_name_from_id(self, id_): + """ + Get P4 object name by its ID. + + :param id_: P4 object ID + :return: P4 object name + """ + return self.p4info_obj_map_by_id[id_].preamble.name + + def get_obj_by_id(self, id_): + """ + Get P4 object by its ID. + + :param id_: P4 object ID + :return: P4 object + """ + return self.p4info_obj_map_by_id[id_] + + def get_packet_metadata_name_from_id(self, ctrl_pkt_md_name, id_): + """ + Get packet metadata name by ID. + + :param ctrl_pkt_md_name: packet replication entity name + :param id_: packet metadata ID + :return: packet metadata name + """ + ctrl_pkt_md = self.get_obj( + P4Type.controller_packet_metadata, ctrl_pkt_md_name) + if not ctrl_pkt_md: + return None + for meta in ctrl_pkt_md.metadata: + if meta.id == id_: + return meta.name + return None + + # We accept any suffix that uniquely identifies the object + # among p4info objects of the same type. + def _import_p4info_names(self): + """ + Import p4 info into memory. + + :return: void + """ + suffix_count = Counter() + for obj_type in P4Type: + self.p4info_objs_by_type[obj_type] = {} + for obj in getattr(self.p4info, obj_type.p4info_name): + pre = obj.preamble + self.p4info_obj_map_by_id[pre.id] = obj + self.p4info_objs_by_type[obj_type][pre.name] = obj + suffix = None + for suf in reversed(pre.name.split(".")): + suffix = suf if suffix is None else suf + "." + suffix + key = (obj_type, suffix) + self.p4info_obj_map[key] = obj + suffix_count[key] += 1 + for key, cnt in suffix_count.items(): + if cnt > 1: + del self.p4info_obj_map[key] + + +# Add p4info object and object id "getters" for each object type; +# these are just wrappers around Context.get_obj and Context.get_obj_id. +# For example: get_table(x) and get_table_id(x) respectively call +# get_obj(P4Type.table, x) and get_obj_id(P4Type.table, x) +for object_type in P4Type: + object_name = "_".join(["get", object_type.name]) + setattr(Context, object_name, partialmethod( + Context.get_obj, object_type)) + object_name = "_".join(["get", object_type.name, "id"]) + setattr(Context, object_name, partialmethod( + Context.get_obj_id, object_type)) + +for object_type in P4Type: + object_name = "_".join(["get", object_type.p4info_name]) + setattr(Context, object_name, partialmethod(Context.get_objs, object_type)) diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py index af05952b313d1632eacd5962cc34c4aa1b6b5a10..069c07ce40e43192b74519b2175e7e10c638cd20 100644 --- a/src/device/service/drivers/p4/p4_driver.py +++ b/src/device/service/drivers/p4/p4_driver.py @@ -16,13 +16,22 @@ P4 driver plugin for the TeraFlow SDN controller. """ +import os +import json import logging import threading from typing import Any, Iterator, List, Optional, Tuple, Union -from .p4_util import P4RuntimeClient,\ +from common.type_checkers.Checkers import chk_type, chk_length, chk_string +from .p4_common import matches_ipv4, matches_ipv6, valid_port,\ P4_ATTR_DEV_ID, P4_ATTR_DEV_NAME, P4_ATTR_DEV_VENDOR,\ - P4_ATTR_DEV_HW_VER, P4_ATTR_DEV_SW_VER, P4_ATTR_DEV_PIPECONF,\ - P4_VAL_DEF_VENDOR, P4_VAL_DEF_HW_VER, P4_VAL_DEF_SW_VER, P4_VAL_DEF_PIPECONF + P4_ATTR_DEV_HW_VER, P4_ATTR_DEV_SW_VER,\ + P4_ATTR_DEV_P4BIN, P4_ATTR_DEV_P4INFO, P4_ATTR_DEV_TIMEOUT,\ + P4_VAL_DEF_VENDOR, P4_VAL_DEF_HW_VER, P4_VAL_DEF_SW_VER,\ + P4_VAL_DEF_TIMEOUT +from .p4_manager import P4Manager, get_api_version, KEY_TABLE,\ + KEY_ACTION_PROFILE, KEY_COUNTER, KEY_DIR_COUNTER, KEY_METER, KEY_DIR_METER,\ + KEY_CTL_PKT_METADATA +from .p4_client import WriteOperation try: from _Driver import _Driver @@ -53,208 +62,543 @@ class P4Driver(_Driver): Hardware version of the P4 device (Optional) sw_ver : str Software version of the P4 device (Optional) - pipeconf : str - P4 device table configuration (Optional) + p4bin : str + Path to P4 binary file (Optional, but must be combined with p4info) + p4info : str + Path to P4 info file (Optional, but must be combined with p4bin) + timeout : int + Device timeout in seconds (Optional) """ def __init__(self, address: str, port: int, **settings) -> None: # pylint: disable=super-init-not-called - self.__client = None + self.__manager = None self.__address = address self.__port = int(port) + self.__endpoint = None self.__settings = settings - - try: - self.__dev_id = self.__settings.get(P4_ATTR_DEV_ID) - except Exception as ex: - LOGGER.error('P4 device ID is a mandatory setting') - raise Exception from ex - - if P4_ATTR_DEV_NAME in self.__settings: - self.__dev_name = self.__settings.get(P4_ATTR_DEV_NAME) - else: - self.__dev_name = str(self.__dev_id) - LOGGER.warning( - 'No device name is provided. Setting default name: %s', - self.__dev_name) - - if P4_ATTR_DEV_VENDOR in self.__settings: - self.__dev_vendor = self.__settings.get(P4_ATTR_DEV_VENDOR) - else: - self.__dev_vendor = P4_VAL_DEF_VENDOR - LOGGER.warning( - 'No vendor is provided. Setting default vendor: %s', - self.__dev_vendor) - - if P4_ATTR_DEV_HW_VER in self.__settings: - self.__dev_hw_version = self.__settings.get(P4_ATTR_DEV_HW_VER) - else: - self.__dev_hw_version = P4_VAL_DEF_HW_VER - LOGGER.warning( - 'No HW version is provided. Setting default HW version: %s', - self.__dev_hw_version) - - if P4_ATTR_DEV_SW_VER in self.__settings: - self.__dev_sw_version = self.__settings.get(P4_ATTR_DEV_SW_VER) - else: - self.__dev_sw_version = P4_VAL_DEF_SW_VER - LOGGER.warning( - 'No SW version is provided. Setting default SW version: %s', - self.__dev_sw_version) - - if P4_ATTR_DEV_PIPECONF in self.__settings: - self.__dev_pipeconf = self.__settings.get(P4_ATTR_DEV_PIPECONF) - else: - self.__dev_pipeconf = P4_VAL_DEF_PIPECONF - LOGGER.warning( - 'No P4 pipeconf is provided. Setting default P4 pipeconf: %s', - self.__dev_pipeconf) - + self.__id = None + self.__name = None + self.__vendor = P4_VAL_DEF_VENDOR + self.__hw_version = P4_VAL_DEF_HW_VER + self.__sw_version = P4_VAL_DEF_SW_VER + self.__p4bin_path = None + self.__p4info_path = None + self.__timeout = P4_VAL_DEF_TIMEOUT self.__lock = threading.Lock() self.__started = threading.Event() self.__terminate = threading.Event() - LOGGER.info('Initializing P4 device at %s:%d with settings:', + self.__parse_and_validate_settings() + + LOGGER.info("Initializing P4 device at %s:%d with settings:", self.__address, self.__port) for key, value in settings.items(): - LOGGER.info('\t%8s = %s', key, value) + LOGGER.info("\t%8s = %s", key, value) def Connect(self) -> bool: """ - Establishes a connection between the P4 device driver and a P4 device. + Establish a connection between the P4 device driver and a P4 device. :return: boolean connection status. """ - LOGGER.info( - 'Connecting to P4 device %s:%d ...', - self.__address, self.__port) + LOGGER.info("Connecting to P4 device %s ...", self.__endpoint) with self.__lock: # Skip if already connected if self.__started.is_set(): return True - # Instantiate a gRPC channel with the P4 device - grpc_address = f'{self.__address}:{self.__port}' + # Dynamically devise an election ID election_id = (1, 0) - self.__client = P4RuntimeClient( - self.__dev_id, grpc_address, election_id) - LOGGER.info('\tConnected!') + + # Spawn a P4 manager for this device + self.__manager = P4Manager( + device_id=self.__id, + ip_address=self.__address, + port=self.__port, + election_id=election_id) + assert self.__manager + + # Start the P4 manager + try: + self.__manager.start(self.__p4bin_path, self.__p4info_path) + except Exception as ex: # pylint: disable=broad-except + raise Exception(ex) from ex + + LOGGER.info("\tConnected via P4Runtime version %s", + get_api_version()) self.__started.set() return True def Disconnect(self) -> bool: """ - Terminates the connection between the P4 device driver and a P4 device. + Terminate the connection between the P4 device driver and a P4 device. :return: boolean disconnection status. """ - LOGGER.info( - 'Disconnecting from P4 device %s:%d ...', - self.__address, self.__port) + LOGGER.info("Disconnecting from P4 device %s ...", self.__endpoint) # If not started, assume it is already disconnected if not self.__started.is_set(): return True - # gRPC client must already be instantiated - assert self.__client + # P4 manager must already be instantiated + assert self.__manager # Trigger termination of loops and processes self.__terminate.set() # Trigger connection tear down with the P4Runtime server - self.__client.tear_down() - self.__client = None + self.__manager.stop() + self.__manager = None - LOGGER.info('\tDisconnected!') + LOGGER.info("\tDisconnected!") return True def GetInitialConfig(self) -> List[Tuple[str, Any]]: """ - Retrieves the initial configuration of a P4 device. + Retrieve the initial configuration of a P4 device. :return: list of initial configuration items. """ - LOGGER.info('P4 GetInitialConfig()') - return [] + initial_conf = [] - def GetConfig(self, resource_keys : List[str] = [])\ + with self.__lock: + if not initial_conf: + LOGGER.warning("No initial configuration for P4 device %s ...", + self.__endpoint) + return [] + + def GetConfig(self, resource_keys: List[str] = [])\ -> List[Tuple[str, Union[Any, None, Exception]]]: """ - Retrieves the current configuration of a P4 device. + Retrieve the current configuration of a P4 device. - :param resource_keys: configuration parameters to retrieve. - :return: list of values associated with the requested resource keys. + :param resource_keys: P4 resource keys to retrieve. + :return: list of values associated with the requested resource keys or + None/Exception. """ + LOGGER.info( + "Getting configuration from P4 device %s ...", self.__endpoint) - LOGGER.info('P4 GetConfig()') - return [] + # No resource keys means fetch all configuration + if len(resource_keys) == 0: + LOGGER.warning( + "GetConfig with no resource keys " + "implies getting all resource keys!") + resource_keys = [ + obj_name for obj_name, _ in self.__manager.p4_objects.items() + ] + + # Verify the input type + chk_type("resources", resource_keys, list) + + with self.__lock: + return self.__get_resources(resource_keys) - def SetConfig(self, resources : List[Tuple[str, Any]])\ + def SetConfig(self, resources: List[Tuple[str, Any]])\ -> List[Union[bool, Exception]]: """ - Submits a new configuration to a P4 device. + Submit a new configuration to a P4 device. - :param resources: configuration parameters to set. - :return: list of results for resource key changes requested. + :param resources: P4 resources to set. + :return: list of boolean results or Exceptions for resource key + changes requested. """ - LOGGER.info('P4 SetConfig()') - return [] + LOGGER.info( + "Setting configuration to P4 device %s ...", self.__endpoint) - def DeleteConfig(self, resources : List[Tuple[str, Any]])\ + if not resources or len(resources) == 0: + LOGGER.warning( + "SetConfig requires a list of resources to store " + "into the device. Nothing is provided though.") + return [] + + assert isinstance(resources, list) + + with self.__lock: + return self.__set_resources(resources) + + def DeleteConfig(self, resources: List[Tuple[str, Any]])\ -> List[Union[bool, Exception]]: """ - Revokes P4 device configuration. + Revoke P4 device configuration. :param resources: list of tuples with resource keys to be deleted. - :return: list of results for resource key deletions requested. + :return: list of boolean results or Exceptions for resource key + deletions requested. """ - LOGGER.info('P4 DeleteConfig()') - return [] + LOGGER.info( + "Deleting configuration from P4 device %s ...", self.__endpoint) + + if not resources or len(resources) == 0: + LOGGER.warning( + "DeleteConfig requires a list of resources to delete " + "from the device. Nothing is provided though.") + return [] - def GetResource(self, endpoint_uuid : str) -> Optional[str]: + with self.__lock: + return self.__delete_resources(resources) + + def GetResource(self, endpoint_uuid: str) -> Optional[str]: """ - Retrieves a certain resource from a P4 device. + Retrieve a certain resource from a P4 device. :param endpoint_uuid: target endpoint UUID. :return: The path of the endpoint or None if not found. """ - LOGGER.info('P4 GetResource()') + LOGGER.warning("GetResource() RPC not yet implemented by the P4 driver") return "" - def GetState(self, blocking=False, terminate : Optional[threading.Event] = None) -> Iterator[Tuple[str, Any]]: + def GetState(self, + blocking=False, + terminate: Optional[threading.Event] = None) -> \ + Iterator[Tuple[str, Any]]: """ - Retrieves the state of a P4 device. + Retrieve the state of a P4 device. :param blocking: if non-blocking, the driver terminates the loop and returns. + :param terminate: termination flag. :return: sequences of state sample. """ - LOGGER.info('P4 GetState()') + LOGGER.warning("GetState() RPC not yet implemented by the P4 driver") return [] - def SubscribeState(self, subscriptions : List[Tuple[str, float, float]])\ + def SubscribeState(self, subscriptions: List[Tuple[str, float, float]])\ -> List[Union[bool, Exception]]: """ - Subscribes to certain state information. + Subscribe to certain state information. :param subscriptions: list of tuples with resources to be subscribed. :return: list of results for resource subscriptions requested. """ - LOGGER.info('P4 SubscribeState()') - return [] + LOGGER.warning( + "SubscribeState() RPC not yet implemented by the P4 driver") + return [False for _ in subscriptions] - def UnsubscribeState(self, subscriptions : List[Tuple[str, float, float]])\ + def UnsubscribeState(self, subscriptions: List[Tuple[str, float, float]])\ -> List[Union[bool, Exception]]: """ - Unsubscribes from certain state information. + Unsubscribe from certain state information. :param subscriptions: list of tuples with resources to be unsubscribed. :return: list of results for resource un-subscriptions requested. """ - LOGGER.info('P4 UnsubscribeState()') - return [] + LOGGER.warning( + "UnsubscribeState() RPC not yet implemented by the P4 driver") + return [False for _ in subscriptions] + + def get_manager(self): + """ + Get an instance of the P4 manager. + + :return: P4 manager instance + """ + return self.__manager + + def __parse_and_validate_settings(self): + """ + Verify that the driver inputs comply to what is expected. + + :return: void or exception in case of validation error + """ + # Device endpoint information + assert matches_ipv4(self.__address) or (matches_ipv6(self.__address)),\ + f"{self.__address} not a valid IPv4 or IPv6 address" + assert valid_port(self.__port), \ + f"{self.__port} not a valid transport port" + self.__endpoint = f"{self.__address}:{self.__port}" + + # Device ID + try: + self.__id = self.__settings.get(P4_ATTR_DEV_ID) + except Exception as ex: + LOGGER.error("P4 device ID is a mandatory setting") + raise Exception from ex + + # Device name + if P4_ATTR_DEV_NAME in self.__settings: + self.__name = self.__settings.get(P4_ATTR_DEV_NAME) + else: + self.__name = str(self.__id) + LOGGER.warning( + "No device name is provided. Setting default name: %s", + self.__name) + + # Device vendor + if P4_ATTR_DEV_VENDOR in self.__settings: + self.__vendor = self.__settings.get(P4_ATTR_DEV_VENDOR) + else: + LOGGER.warning( + "No device vendor is provided. Setting default vendor: %s", + self.__vendor) + + # Device hardware version + if P4_ATTR_DEV_HW_VER in self.__settings: + self.__hw_version = self.__settings.get(P4_ATTR_DEV_HW_VER) + else: + LOGGER.warning( + "No HW version is provided. Setting default HW version: %s", + self.__hw_version) + + # Device software version + if P4_ATTR_DEV_SW_VER in self.__settings: + self.__sw_version = self.__settings.get(P4_ATTR_DEV_SW_VER) + else: + LOGGER.warning( + "No SW version is provided. Setting default SW version: %s", + self.__sw_version) + + # Path to P4 binary file + if P4_ATTR_DEV_P4BIN in self.__settings: + self.__p4bin_path = self.__settings.get(P4_ATTR_DEV_P4BIN) + assert os.path.exists(self.__p4bin_path),\ + "Invalid path to p4bin file" + assert P4_ATTR_DEV_P4INFO in self.__settings,\ + "p4info and p4bin settings must be provided together" + + # Path to P4 info file + if P4_ATTR_DEV_P4INFO in self.__settings: + self.__p4info_path = self.__settings.get(P4_ATTR_DEV_P4INFO) + assert os.path.exists(self.__p4info_path),\ + "Invalid path to p4info file" + assert P4_ATTR_DEV_P4BIN in self.__settings,\ + "p4info and p4bin settings must be provided together" + + if (not self.__p4bin_path) or (not self.__p4info_path): + LOGGER.warning( + "No P4 binary and info files are provided, hence " + "no pipeline will be installed on the whitebox device.\n" + "This driver will attempt to manage whatever pipeline " + "is available on the target device.") + + # Device timeout + if P4_ATTR_DEV_TIMEOUT in self.__settings: + self.__timeout = self.__settings.get(P4_ATTR_DEV_TIMEOUT) + assert self.__timeout > 0,\ + "Device timeout must be a positive integer" + else: + LOGGER.warning( + "No device timeout is provided. Setting default timeout: %s", + self.__timeout) + + def __get_resources(self, resource_keys): + """ + Retrieve the current configuration of a P4 device. + + :param resource_keys: P4 resource keys to retrieve. + :return: list of values associated with the requested resource keys or + None/Exception. + """ + resources = [] + + LOGGER.debug("GetConfig() -> Keys: %s", resource_keys) + + for resource_key in resource_keys: + entries = [] + try: + if KEY_TABLE == resource_key: + for table_name in self.__manager.get_table_names(): + t_entries = self.__manager.table_entries_to_json( + table_name) + if t_entries: + entries.append(t_entries) + elif KEY_COUNTER == resource_key: + for cnt_name in self.__manager.get_counter_names(): + c_entries = self.__manager.counter_entries_to_json( + cnt_name) + if c_entries: + entries.append(c_entries) + elif KEY_DIR_COUNTER == resource_key: + for d_cnt_name in self.__manager.get_direct_counter_names(): + dc_entries = \ + self.__manager.direct_counter_entries_to_json( + d_cnt_name) + if dc_entries: + entries.append(dc_entries) + elif KEY_METER == resource_key: + for meter_name in self.__manager.get_meter_names(): + m_entries = self.__manager.meter_entries_to_json( + meter_name) + if m_entries: + entries.append(m_entries) + elif KEY_DIR_METER == resource_key: + for d_meter_name in self.__manager.get_direct_meter_names(): + dm_entries = \ + self.__manager.direct_meter_entries_to_json( + d_meter_name) + if dm_entries: + entries.append(dm_entries) + elif KEY_ACTION_PROFILE == resource_key: + for ap_name in self.__manager.get_action_profile_names(): + ap_entries = \ + self.__manager.action_prof_member_entries_to_json( + ap_name) + if ap_entries: + entries.append(ap_entries) + elif KEY_CTL_PKT_METADATA == resource_key: + msg = f"{resource_key.capitalize()} is not a " \ + f"retrievable resource" + raise Exception(msg) + else: + msg = f"GetConfig failed due to invalid " \ + f"resource key: {resource_key}" + raise Exception(msg) + resources.append( + (resource_key, entries if entries else None) + ) + except Exception as ex: # pylint: disable=broad-except + resources.append((resource_key, ex)) + + return resources + + def __set_resources(self, resources): + """ + Submit a new configuration to a P4 device. + + :param resources: P4 resources to set. + :return: list of boolean results or Exceptions for resource key + changes requested. + """ + results = [] + + for i, resource in enumerate(resources): + str_resource_name = f"resources[#{i}]" + resource_key = "" + try: + chk_type( + str_resource_name, resource, (list, tuple)) + chk_length( + str_resource_name, resource, min_length=2, max_length=2) + resource_key, resource_value = resource + chk_string( + str_resource_name, resource_key, allow_empty=False) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception( + "Exception validating %s: %s", + str_resource_name, str(resource_key)) + results.append(e) # store the exception if validation fails + continue + + try: + resource_value = json.loads(resource_value) + except Exception: # pylint: disable=broad-except + pass + + LOGGER.debug( + "SetConfig() -> Key: %s - Value: %s", + resource_key, resource_value) + + # Default operation is insert. + # P4 manager has internal logic to judge whether an entry + # to be inserted already exists, thus simply needs an update. + operation = WriteOperation.insert + + try: + self.__apply_operation(resource_key, resource_value, operation) + results.append(True) + except Exception as ex: # pylint: disable=broad-except + results.append(ex) + + print(results) + + return results + + def __delete_resources(self, resources): + """ + Revoke P4 device configuration. + + :param resources: list of tuples with resource keys to be deleted. + :return: list of boolean results or Exceptions for resource key + deletions requested. + """ + results = [] + + for i, resource in enumerate(resources): + str_resource_name = f"resources[#{i}]" + resource_key = "" + try: + chk_type( + str_resource_name, resource, (list, tuple)) + chk_length( + str_resource_name, resource, min_length=2, max_length=2) + resource_key, resource_value = resource + chk_string( + str_resource_name, resource_key, allow_empty=False) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception( + "Exception validating %s: %s", + str_resource_name, str(resource_key)) + results.append(e) # store the exception if validation fails + continue + + try: + resource_value = json.loads(resource_value) + except Exception: # pylint: disable=broad-except + pass + + LOGGER.debug("DeleteConfig() -> Key: %s - Value: %s", + resource_key, resource_value) + + operation = WriteOperation.delete + + try: + self.__apply_operation(resource_key, resource_value, operation) + results.append(True) + except Exception as ex: # pylint: disable=broad-except + results.append(ex) + + print(results) + + return results + + def __apply_operation( + self, resource_key, resource_value, operation: WriteOperation): + """ + Apply a write operation to a P4 resource. + + :param resource_key: P4 resource key + :param resource_value: P4 resource value in JSON format + :param operation: write operation (i.e., insert, update, delete) + to apply + :return: True if operation is successfully applied or raise Exception + """ + + # Apply settings to the various tables + if KEY_TABLE == resource_key: + self.__manager.table_entry_operation_from_json( + resource_value, operation) + elif KEY_COUNTER == resource_key: + self.__manager.counter_entry_operation_from_json( + resource_value, operation) + elif KEY_DIR_COUNTER == resource_key: + self.__manager.direct_counter_entry_operation_from_json( + resource_value, operation) + elif KEY_METER == resource_key: + self.__manager.meter_entry_operation_from_json( + resource_value, operation) + elif KEY_DIR_METER == resource_key: + self.__manager.direct_meter_entry_operation_from_json( + resource_value, operation) + elif KEY_ACTION_PROFILE == resource_key: + self.__manager.action_prof_member_entry_operation_from_json( + resource_value, operation) + self.__manager.action_prof_group_entry_operation_from_json( + resource_value, operation) + elif KEY_CTL_PKT_METADATA == resource_key: + msg = f"{resource_key.capitalize()} is not a " \ + f"configurable resource" + raise Exception(msg) + else: + msg = f"{operation} on invalid key {resource_key}" + LOGGER.error(msg) + raise Exception(msg) + + LOGGER.debug("%s operation: %s", resource_key.capitalize(), operation) + + return True diff --git a/src/device/service/drivers/p4/p4_exception.py b/src/device/service/drivers/p4/p4_exception.py new file mode 100644 index 0000000000000000000000000000000000000000..3e3afb723b3850fd9a9b2b1c4982bf8ae31b20f7 --- /dev/null +++ b/src/device/service/drivers/p4/p4_exception.py @@ -0,0 +1,135 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +""" +P4 driver exceptions. +""" + + +class UserError(Exception): + """ + User error exception. + """ + def __init__(self, info=""): + super().__init__() + self.info = info + + def __str__(self): + return self.info + + # TODO: find better way to get a custom traceback # pylint: disable=W0511 + def _render_traceback_(self): + return [str(self)] + + +class InvalidP4InfoError(Exception): + """ + Invalid P4 info exception. + """ + def __init__(self, info=""): + super().__init__() + self.info = info + + def __str__(self): + return f"Invalid P4Info message: {self.info}" + + def _render_traceback_(self): + return [str(self)] + + +class UnknownOptionName(UserError): + """ + Unknown option name exception. + """ + def __init__(self, option_name): + super().__init__() + self.option_name = option_name + + def __str__(self): + return f"Unknown option name: {self.option_name}" + + +class InvalidOptionValueType(UserError): + """ + Invalid option value type exception. + """ + def __init__(self, option, value): + super().__init__() + self.option = option + self.value = value + + def __str__(self): + return f"Invalid value type for option {self.option.name}. "\ + "Expected {self.option.value.__name__} but got "\ + "value {self.value} with type {type(self.value).__name__}" + + +class UserBadIPv4Error(UserError): + """ + Invalid IPv4 address value exception. + """ + def __init__(self, addr): + super().__init__() + self.addr = addr + + def __str__(self): + return f"{self.addr}' is not a valid IPv4 address" + + def _render_traceback_(self): + return [str(self)] + + +class UserBadIPv6Error(UserError): + """ + Invalid IPv6 address value exception. + """ + def __init__(self, addr): + super().__init__() + self.addr = addr + + def __str__(self): + return f"'{self.addr}' is not a valid IPv6 address" + + def _render_traceback_(self): + return [str(self)] + + +class UserBadMacError(UserError): + """ + Invalid MAC address value exception. + """ + def __init__(self, addr): + super().__init__() + self.addr = addr + + def __str__(self): + return f"'{self.addr}' is not a valid MAC address" + + def _render_traceback_(self): + return [str(self)] + + +class UserBadValueError(UserError): + """ + Invalid value exception. + """ + def __init__(self, info=""): + super().__init__() + self.info = info + + def __str__(self): + return self.info + + def _render_traceback_(self): + return [str(self)] diff --git a/src/device/service/drivers/p4/p4_global_options.py b/src/device/service/drivers/p4/p4_global_options.py new file mode 100644 index 0000000000000000000000000000000000000000..3457c8d556902557aa3991eee20418cf3094666c --- /dev/null +++ b/src/device/service/drivers/p4/p4_global_options.py @@ -0,0 +1,206 @@ +# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +# +# Licensed 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. + +""" +P4Runtime global options. +""" + +import enum +try: + from .p4_exception import UnknownOptionName, InvalidOptionValueType +except ImportError: + from p4_exception import UnknownOptionName, InvalidOptionValueType + + +@enum.unique +class Options(enum.Enum): + """ + P4 options. + """ + canonical_bytestrings = bool + + +class GlobalOptions: + """ + P4 global options. + """ + option_defaults = { + Options.canonical_bytestrings: True, + } + + option_helpstrings = { + Options.canonical_bytestrings: """ +Use byte-padded legacy format for binary strings sent to the P4Runtime server, +instead of the canonical representation. See P4Runtime specification for +details. +""" + } + + def __init__(self): + self._values = {} + self.reset() + self._option_names = [option.name for option in Options] + self._set_docstring() + + def reset(self): + """ + Reset all options to their defaults. + + :return: void + """ + for option in Options: + assert option in GlobalOptions.option_defaults + self._values[option] = GlobalOptions.option_defaults[option] + + def _supported_options_as_str(self): + """ + Return a comma-separated string of supported options. + + :return: string of supported options + """ + return ", ".join([f"{o.name} ({o.value.__name__})" for o in Options]) + + def _supported_options_as_str_verbose(self): + """ + Return a detailed comma-separated string of supported options. + + :return: string of supported options + """ + opt_str = "" + for option in Options: + opt_str += f"Option name: {option.name}\n" + opt_str += f"Type: {option.value.__name__}\n" + opt_str += f"Default value: " \ + f"{GlobalOptions.option_defaults[option]}\n" + opt_str += f"Description: " \ + f"{GlobalOptions.option_helpstrings.get(option, 'N/A')}\n" + opt_str += "\n" + return opt_str[:-1] + + def _set_docstring(self): + """ + Set the documentation for this object. + + :return: void + """ + self.__doc__ = f""" +Manage global options for the P4Runtime shell. +Supported options are: {self._supported_options_as_str()} +To set the value of a global option, use GLOBAL_OPTIONS["